BuildJet for GitHub Actions Setup: Labels, Sizes & Cache
BuildJet is a drop-in GitHub Actions runner: you install its GitHub App and change one runs-on label. Here is how the setup works, and what to plan for as BuildJet winds down.
This guide summarizes how BuildJet for GitHub Actions was configured, based on BuildJet's own getting-started docs, so you can read existing workflows or plan a migration. Important context first: According to BuildJet's own announcement, BuildJet for GitHub Actions is winding down: new signups were halted effective February 6th, 2026, and BuildJet stops running jobs on March 31st, 2026. Dates and details can change, so verify the current status on BuildJet's site before you plan a migration.
Step 1: install the BuildJet GitHub App
According to BuildJet's docs, setup starts by authorizing BuildJet access to your GitHub account through its onboarding flow. If you lack admin rights, a repository owner installs the app. This is the same GitHub App permission model most managed runners use.
Step 2: change the runs-on label
BuildJet's docs describe the core change as editing one line: the runs-on value. The documented label format is buildjet-<vcpu>-<os>-<version>, and BuildJet recommends buildjet-4vcpu-ubuntu-2204 as a starting point that it describes as comparable pricing to GitHub's runner.
jobs:
build:
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
- uses: actions/checkout@v4Hardware tiers
According to BuildJet's site, runners were offered across five tiers, from 2 vCPU / 8 GB up to 32 vCPU, in both AMD64 and ARM. Exact prices are on BuildJet's pricing page and can change, so verify current figures there rather than relying on any number quoted elsewhere.
| vCPU | RAM (per BuildJet) | Arch options |
|---|---|---|
| 2 | 8 GB | AMD64 / ARM |
| 4 | 16 GB | AMD64 / ARM |
| 8 | 32 GB | AMD64 / ARM |
| 16 | 64 GB | AMD64 / ARM |
| 32 | 64 GB (per BuildJet) | AMD64 / ARM |
Step 3 (optional): the buildjet/cache action
BuildJet published buildjet/cache as a drop-in replacement for actions/cache. According to BuildJet's launch post it uses the same inputs and is backed by Cloudflare R2, and BuildJet states it works on any runner, not just BuildJet. To use it, you swap the action name.
- uses: buildjet/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}Planning ahead
If you are setting up new BuildJet workflows today, weigh the shutdown timeline first. For a runner that keeps cheaper-than-hosted pricing without a wind-down cloud over it, Latchkey uses the same one-line runs-on swap and adds self-healing CI and built-in caching. It is a low-effort option to evaluate alongside a plain move to GitHub-hosted.
Frequently asked questions
What does a BuildJet runs-on label look like?
buildjet-<vcpu>-<os>-<version>, for example buildjet-4vcpu-ubuntu-2204. ARM variants follow the same pattern. Verify supported labels on BuildJet's current docs.