Self-hosted GitHub Actions runners on Kubernetes.
Errand runs GitHub Actions jobs on a cluster you control. A runner starts for each job, does the work, and goes away. Arm and x64 pools grow with the queue.
How it works
Point a job's runs-on at an Errand label instead of ubuntu-latest. Workflows, secrets, and permissions stay in GitHub.
GitHub's Actions Runner Controller sees the queued job and starts a runner pod. The node pool adds machines when the queue grows.
Each runner gets four cores and 16 GiB. When the job ends, the runner is removed and the next job gets a clean one.
Roadmap
Errand is not open to other teams yet. It opens up in this order.
Errand runs AutoButler's builds today, for Quark and the projects around it, on one Azure cluster.
The same stack, run by us for other teams. That waits on a stronger wall between jobs, so one team's build can never reach another's.
Bring a Kubernetes cluster, a container registry, and a storage bucket, and run the same stack on your own infrastructure.
From AutoButler
AutoButler makes Quark, a private home cloud. Errand is the build system we made to ship it.