
tl;dr: We built a way to superspeed GitHub action builds for large projects using managing persistent (cached) runners.
We noticed our Unity game builds are much slower on GitHub than locally. Here's why:
We learned we can register self-hosted runners to build on our own machines. But this doesn't scale - hosting runners on Azure or AWS gets expensive quickly.
So, we built a system to manage runners more intelligently. When there's a job, a runner is quickly made available. When there are no jobs, we can optimize aggressively to save on costs.
Unlike GitHub's runners, these persist₁ from run to run, reducing our build times over 50%.
This strategy works great for us, so we turned it into a service. Welcome to Buildalon!
Getting started:
Thanks in advance for your feedback!
[1] We know consistency is a core principal in DevOps, and stateful runners go against that. But sometimes, we think speed is more important. If needed, we can reset the runner any time.