There are many ways to setup GitHub self-hosted runners. In this blog post, I’ll review the following 2 options.
- AWS Code Build – GitHub Runners
- Action Runner Controller – GitHub Runners
AWS Code Build – GitHub Runners
AWS CodeBuild provides fully managed, ephemeral self-hosted runners. Each GitHub workflow (job) spins up a fresh environment (no persistent runners), with native AWS integrations. Review the link above setup instructions.
AWS Ephemeral = Temporary resources that are lost/removed when job completes
Benefits
- No infrastructure to manage or scale.
- Pay only per build minute.
- Runners are ephemeral: one job per runner, auto-terminated after completion.
- Easy setup!
- Don’t need to worry about constant AMI updates!
Actions Runner Controller (ARC)
Actions Runner Controller (ARC) is an open-source Kubernetes operator maintained by GitHub that deploys and auto-scales ephemeral self-hosted runners as pods in your K8s cluster. If you are not an AWS shop, then ARC might be an option for you by using Azure Kubernetes Service or Google Kubernetest Service.
Benefits
- Custom runners
- Quick scaling
- Not AWS specific.
- Ephemeral runners, like the AWS code build option
I’ve not implemented the ARC option, but have used Code Build for running GitHub runners. I suggest looking into the AWS Code Build option if you are an AWS shop.
Leave a comment