How runners work
The lifecycle of a runner from registration to job execution follows these steps:- Register the runner. Generate a registration token in the dashboard and start the runner process with that token.
- The runner authenticates and announces its labels to Shipfox. Its log prints
Runner session registeredand it starts polling for jobs. - When a workflow run starts a job, Shipfox dispatches it to any available runner whose labels match the job’s
runner:label. - The runner re-clones the repository, then executes each step in the job in order.
- Logs stream back to the dashboard in real time as each step runs.
Runner labels
Labels are how Shipfox matches jobs to runners. A runner can carry multiple labels, and a workflow job’srunner: field specifies which label (or labels) are required.
- A job is dispatched to a runner only if the runner has all of the required labels.
- Labels are set when you start the runner process, as the comma-separated
SHIPFOX_RUNNER_LABELSenvironment variable. - A single machine can run multiple runner processes with different label sets.
runner: ubuntu-latest is dispatched to any online runner that has the ubuntu-latest label. A workflow with runner: [ubuntu-latest, gpu] requires a runner that carries both labels simultaneously.
Choose label names that describe the environment the runner provides — OS, architecture, available hardware, or team ownership are common schemes.
Registration
Registering a new runner takes three steps:- In the dashboard, go to Settings → Runners.
- Click Create token, name the token, and copy its value — it is shown only once. Treat it like a secret; it authenticates the runner to your workspace.
- Start the runner process with the token. The runner registers itself on first start and begins polling for jobs immediately.
Prefer not to hand-start runners? A runner provisioner
starts ephemeral, single-job runners automatically based on demand, then lets them
exit when idle.
Agent step requirements
Runner processes that execute agent steps need network access to the AI provider’s API. Set
ANTHROPIC_API_KEY (or the appropriate provider key, such as OPENAI_API_KEY) in the runner’s environment before starting it. Without the key, agent steps will fail at execution time.