Running jobs
Machines
Primary, backup, off#
Each machine has a routing role:
| Role | Takes jobs |
|---|---|
| primary | Whenever it has a free slot. Several primaries share the load. |
| backup | Only when no primary can: every primary offline, paused, outside its policy, or full. |
| off | Never. It stays connected so it still shows in status. |
npx buildhound runner set <machine> --routing backupPause, policy and performance#
A laptop takes jobs only when plugged in by default, since a job pins the cores for minutes and a lid that closes mid-job strands it. Turn that off, or add only when nobody is using it. Any machine can be paused; running jobs finish.
npx buildhound runner set <machine> --plugged-in-only off
npx buildhound runner set <machine> --idle-only on
npx buildhound runner set <machine> --performance quiet
npx buildhound runner set <machine> --pausePerformance is quiet, balanced or max. A machine outside its policy reports no free slots, so GitHub hands its jobs to the others.
Capacity#
By default a machine runs one macOS job at a time and as many 4 GB Linux jobs as its memory holds; laptops run one job at a time. Pin it with --capacity, or size every guest with --vm-cpus and --vm-memory-mib when connecting.
Remove a machine#
npx buildhound runner remove <machine> --yesThe registration is kept for 48 hours, so a machine that comes back keeps its name. Run on the machine itself, it also stops the agent.