4
0 Comments

Persistent GitHub Action Runners - Buildalon

tl;dr: We built a way to superspeed GitHub action builds for large projects using managing persistent (cached) runners.

https://ci.buildalon.com

We noticed our Unity game builds are much slower on GitHub than locally. Here's why:

  • The runner needs to install the game engine and dependencies every time. - The build artifacts are not cached between runs.

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:

  • Install the Buildalon GitHub App.
  • Replace runs-on: windows-latest with buildalon-windows (or buildalon-ubuntu).
  • That's it - you get 200 free minutes to try it out.

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.

on January 9, 2025