We’re looking to move some jobs to GitHub Actions that are currently run on Jenkins. These are automation jobs where on a schedule, they launch some process elsewhere, and stream logs. Typically the actual compute for these jobs is happening on other machines, and the Jenkins jobs are lightweight HTTP API or SSH clients.
These jobs can run for a long time, and we’d be looking at hundreds of dollars a month or more running these on GitHub Actions at $0.008/min, and the 2 core 7GB RAM Actions runner would be vastly under-utilised. We’d like to therefore move these to self hosted runners.
It’s not clear from the documentation if a runner is a location/configuration, or an provisioned capacity. i.e. if we want to run 3 jobs at the same time, would these each get scheduled on to the same runner, or would we need to add 3 separate runners?
Further, if it’s as I suspect, that we’d need to add multiple separate runners because they represent provisioned capacity, what’s the guidance for running multiple runners on the same machine? The documentation doesn’t appear to go into detail about what a runner actually consists of (other than a systemd service?), what configuration options are available, etc. Do they create temporary working directories, or do their working directories need to be overridden so each runner gets its own rather than them all fighting over the same one?