Run your Forgejo Actions jobs on Nomad!
Find a file
Katie Kloss 7bba33bc8a
All checks were successful
/ build (push) Successful in 2m49s
fix(autoscaler): don't cut off running jobs.
2025-11-11 09:28:07 -05:00
.forgejo/workflows Update .forgejo/workflows/test.yaml 2025-10-28 15:08:53 +00:00
cmd fix(autoscaler): don't cut off running jobs. 2025-11-11 09:28:07 -05:00
nomad ci: run the main branch instead of a local repo. 2025-11-11 09:28:07 -05:00
.gitignore Initial commit 2025-10-23 15:35:24 +00:00
go.mod feat(autoscaler): attempt #2 2025-10-28 10:40:02 -04:00
go.sum feat(autoscaler): attempt #2 2025-10-28 10:40:02 -04:00
LICENSE Initial commit 2025-10-23 15:35:24 +00:00
README.md Update README.md 2025-11-04 18:54:34 +00:00

forgejo-nomad-runner

This has assorted utilities for running Forgejo Actions on a Nomad cluster, including:

autoscaler

This runs the standard Forgejo Actions Runner container image, and scales its Nomad task group according to whether Forgejo Actions has pending jobs. The runner(s) will be scheduled on the Nomad cluster as needed, which allows execution of multiple jobs simultaneously while being mindful of preserving resources for other jobs.

One notable problem with this approach is that the Podman API actually belongs to the host system, mounted into the runner image with a Nomad host volume, so the tasks aren't isolated from other containers running on the host. Running Podman within Podman mitigates this, but I haven't figured out how to do that yet.

It lives in cmd/autoscaler/autoscaler.go.