...
Possible setup #3 - Self hosted runner with jobs in containers
May be the optimal route if we host the build system on our own hardware (or virtual).
This solves 2 problems:
- No bottleneck on the self hosted runner since the runner will just spin up containers to do the jobs, not the runner itself.
- Not having the runner rely on github resources that can potentially cost money if overused. Also not having a self-hosted runner for each project, we can host the runner organization wide (like propose #2) and have every project enable their actions runner to 'build-system'.
Running jobs in a container - GitHub Docs
Creating a Docker container action - GitHub Docs