qubitrenegade / qubitrenegade/github-actions-runner-tools

Build reusable platform-based self-hosted runner toolkit

Open
#1 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Outcome

Create a reusable, project-configurable toolkit for repository-scoped GitHub
Actions self-hosted runners. The first usable release supports the existing
deployment model:

  • Linux runners in Podman containers; and
  • Windows runners as isolated services on an existing bare-metal workstation.

The architecture must define macOS bare-metal as a first-class v1 provider and
leave explicit extension points for future Linux bare-metal and Windows-container
providers without pretending those providers exist today.

Configuration contract

  • A consumer repository owns one human-edited runner-tools.yaml profile.
  • Parse YAML 1.2 strictly, reject duplicate keys, validate against a versioned
    checked-in JSON Schema, and reject unknown fields.
  • Platform-first provider paths:
    • platforms/linux/container/
    • platforms/windows/bare-metal/
    • platforms/macos/bare-metal/
  • Project profiles explicitly name runner selectors, container/image/volume
    prefixes, paths, capability profiles, and any project-specific extension.
  • Refuse collisions unless exact ownership metadata matches.

Bootstrap and extension contract

  • Provide version-pinned curl | bash and iwr | iex release entry points,
    while documenting download/checksum/execute as the preferred elevated path.
  • Provide tiny consumer-repository POSIX and PowerShell shims that can check out
    a pinned tools revision beside the consumer repository.
  • Use Clickwork for the cross-platform CLI and its shared-plugin/local-command
    extension model; do not require GNU Make.
  • Separate host provisioning, project toolchain preparation, and job-local
    dependency installation.

Prototype acceptance

  • Generalize the proven factory-game Windows lifecycle implementation without
    weakening collision, immutable-identity, recovery, service, checksum, or
    credential boundaries.
  • Generalize the existing Podman Linux runner pattern with explicit per-project
    container/image/volume names and project-owned Containerfile extension.
  • Implement plan, install/up, status, doctor, restart, and
    remove/down behavior as applicable to each implemented provider.
  • Include unit/integration tests runnable on Linux; document the required live
    Windows and container smoke evidence.
  • Include security, contribution, release, and consumer-integration docs.

V1 follow-up

  • Implement and validate the macOS bare-metal provider on Apple hardware.
  • Track Linux bare-metal and Windows containers as non-v1 stretch providers.

Workflow

  • Work on a feature branch and PR.
  • Run a clean fresh-context review before each push.
  • Request Balanced Copilot review and iterate until useful feedback converges.
  • Do not add Codex/co-author/signoff trailers or agent commit signatures.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by mapping the existing deployment model to the provider paths under platforms/linux/container/, platforms/windows/bare-metal/, and platforms/macos/bare-metal/, then inspect the runner-tools.yaml contract and checked-in JSON Schema requirements. Use the listed plan, install/up, status, doctor, restart, and remove/down behaviors as the completion checklist, with unit/integration tests runnable on Linux and documented Windows/container smoke evidence.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, json, linux, macos, powershell, shell, yaml
Domain
ci-cd, devops, infrastructure, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.