Drag to orbit

GitHub Actions runners · bare metal

GitHub Actions on bare metal.
Change one line.

Every job gets a fresh micro-VM on bare metal. A 2 vCPU runner costs $0.096 an hour. GitHub charges $0.360.

.github/workflows/ci.yml
$0.192/hr
- runs-on: ubuntu-latest
+ runs-on: vulcan-4vcpu-ubuntu-2404
Start free

3,000 free vCPU-minutes a month · no credit card · cancel by deleting one line

01 — Migrate

Paste a workflow. Get it back rewritten.

Only runs-on: changes. Comments, anchors and every other line stay exactly as they were.

on vulcan

        

or let your agent do it
02 — Pricing

Per vCPU, in public.

Every started minute, times its vCPUs. No seats, minimums or commitments.

Price per minute by runner size
RunnerMachineVulcanGitHubYou save
vulcan-2vcpu2 vCPU · 8 GB · 14 GB$0.096/hr$0.360/hr73%
vulcan-4vcpu4 vCPU · 16 GB · 28 GB$0.192/hr$0.720/hr73%
vulcan-8vcpu8 vCPU · 32 GB · 56 GB$0.384/hr$1.440/hr73%
vulcan-16vcpu16 vCPU · 64 GB · 112 GB$0.768/hr$2.880/hr73%
vulcan-32vcpu32 vCPU · 128 GB · 150 GB$1.536/hr$5.760/hr73%

Billed per started minute: $0.0008 per vCPU-minute. GitHub column: GitHub-hosted Linux list price, $0.003 per vCPU-minute. Machine: vCPU · RAM · disk.

Vulcan total is after 3,000 free vCPU-minutes.

Vulcan$29.60
GitHub$120.00
You save$90.40

3,000 free vCPU-minutes every month. A $2.40 credit that covers any size: 1,500 minutes at 2 vCPU.

Start free
03 — Questions

Questions.

Do I have to leave GitHub Actions?

No. GitHub keeps running your workflows, logs, required checks and approvals. Vulcan replaces only the machine each job runs on, which is why the change is one line.

Vulcan vs Blacksmith?

Both run GitHub Actions jobs on faster hardware for less. Vulcan charges $0.0008 per vCPU-minute at every size, with every size's price public, and gives every job a fresh micro-VM that is destroyed when the job ends.

Vulcan vs GitHub larger runners?

Same workflows, same one-line change. GitHub's Linux runners list at $0.003 per vCPU-minute; Vulcan is about a quarter of that at every size.

Vulcan vs self-hosted ARC?

You run nothing: no cluster, no runner scale sets, no long-lived runners to patch or clean. Each job gets a single-use runner in a fresh VM.

Is my code isolated?

Yes. Every job runs in its own hardware-isolated micro-VM with a single-use runner registration, and the VM is destroyed when the job finishes. Secrets stay in GitHub and reach only the job that uses them.

How do I fall back to GitHub-hosted?

Put the label in a repository variable, runs-on: ${{ vars.RUNNER }}, and switch the variable between a Vulcan label and ubuntu-latest. A list of labels does not fail over: every label in a list must match the same runner.

Caches?

actions/cache works unchanged.

Change one line.

$0.096 an hour at 2 vCPU. 3,000 vCPU-minutes free.

Start free