Run GitHub Actions CI on BuildStack
BuildStack can run your existing GitHub Actions jobs on its own compute: no GitHub-hosted minutes, no runner to babysit. Each job gets a fresh, isolated, single-use runner that BuildStack provisions on demand and tears down after.
1. Connect the GitHub App
From the CI runners page, connect the BuildStack GitHub App to the account (org or user) that owns your repositories, and install it on the repos you want to build.
2. Point a job at BuildStack
In your workflow, set the job's runs-on to the BuildStack label:
jobs:
build:
runs-on: buildstack-arc
steps:
- uses: actions/checkout@v4
- run: echo "running on BuildStack"
Write the label on its own, not inside a list. runs-on: [self-hosted, buildstack-arc] looks reasonable and matches nothing: the job waits for a runner that answers to both labels, no such runner exists, and it sits queued until GitHub expires it without reporting an error. One label, no brackets.
Push, and the job runs on a BuildStack runner. The CI runners page lists every run with its status, duration, and minutes, and you can open a run to read its logs in-app.
If your workflows say buildstack-linux
That was the older runner fleet and it has been retired. A job still asking for it will wait for a runner that no longer exists, so change the line:
- runs-on: [self-hosted, buildstack-linux]
+ runs-on: buildstack-arc
Replace the whole line rather than the name inside the brackets, for the reason above.
What the runner provides
The runner image is Ubuntu-based and includes Docker (via BuildKit), the Azure CLI, git, and common tooling. Language toolchains that your workflow installs with setup actions (for example actions/setup-node) work as usual.
The runner is daemonless for container builds, so usedocker buildx buildfor image builds. A plaindocker buildfollowed by a separatedocker pushwon't work; combine them withbuildx --push.
CI minutes
Runs consume CI minutes from your plan's monthly allowance. When you run out, new jobs stay queued until minutes reset or you upgrade. Track usage on the CI runners page. See CI minutes, build quota & plans.
Troubleshooting
- Job stuck "queued", nothing happens: the workspace connection is usually
stale (common after reinstalling or recreating the App). Press Reconnect on the CI runners page. See Troubleshooting.
- Out of CI minutes: the usage bar shows this; upgrade or wait for the reset.