Namespace Job Priority and Label Overrides Explained
Beyond picking a shape, Namespace lets you append key=value settings to a profile label to control priority, cache sharing, and more.
According to Namespace's runner-configuration docs, you can append additional settings to a profile label as ;key=value pairs, or pass features via a namespace-features label. This guide covers the documented overrides so you can tune scheduling and cache behavior without leaving your workflow YAML. Confirm current options in Namespace's docs.
Set job priority
Per Namespace's docs, append ;job.priority=<number> to the runs-on label to set a priority, where lower numbers execute first. This is useful when you want critical jobs to jump ahead of routine ones.
Share a cache across profiles or repos
According to Namespace's docs, you can force a custom cache tag with runs-on: namespace-profile-my-profile;overrides.cache-tag=new-tag-value, which lets multiple profiles or repositories share the same cache. Use this deliberately, since a shared tag mixes cache contents.
Other documented overrides
Namespace's reference also documents settings such as container.privileged=true, container.host-pid-namespace=true, and github.run-id for deterministic job assignment. Only apply overrides you understand, as some change isolation behavior.
Apply overrides safely
- Keep exactly one nscloud or profile label in runs-on; append overrides to that single label.
- Use ;job.priority=<number> for scheduling order (lower first).
- Use ;overrides.cache-tag=<value> only when you intend to share a cache.
- Test override changes on one workflow before rolling out.
A note on tuning effort
If reliability and per-minute cost are what you are optimizing for, Latchkey is a managed GitHub Actions runner with the same one-line runs-on swap that adds self-healing (transient and mechanical failures are detected, fixed, and retried automatically) at up to 58% lower per-minute cost than GitHub-hosted. You can pilot it on one workflow alongside Namespace and compare.