github runners
ix runs your github actions jobs on ix machines. each job boots a fresh machine from a warm snapshot of your last green run. ix removes the machine when the job ends.
connect a repository
- install the ix runners github app on your organization or repository.
- github returns you to ix.dev and the installation links to your account. if you are signed out, sign in first and the link completes after.
the runners page lists your repositories once the link completes.
route jobs to ix
change the runs-on line of a job:
jobs:
test:
runs-on: [ix] to give a job its own warm state, add a second label:
jobs:
build:
runs-on: [ix, ix-build] each distinct label set is a job type, and each job type keeps its own snapshot. a build job and a lint job never share caches.
how a job runs
when a job queues, ix boots one machine for it. the machine registers with github under a credential that is valid for that one job. when the job ends, ix removes the machine.
the first run of a job type boots cold from the base runner template. when a job passes on your default branch, ix snapshots its machine before removal. later jobs of that type boot from the snapshot, with the checkout, the build caches, and the toolchains already on disk. each new green run on the default branch replaces the snapshot.
pull requests from forks run the same way but never update the snapshot.
watch your jobs
the runners page shows your machines and your recent jobs with their timings. each finished job is marked cold or warm.
billing
a runner machine is an ordinary ix machine, billed per second while it exists. see billing.
read more
the blog post on ci explains the design and the measurements behind it.