Skip to content

Workers

A worker is the binary plus Docker, git, and a Hatchet token. It needs to reach the Hatchet engine and the git server; nothing connects in to it.

Variable
HATCHET_CLIENT_TOKEN Credentials for the Hatchet tenant.
STARCI_WORKER_NAME Name recorded in results. Default: the hostname.
STARCI_SLOTS Steps to run at once. Default: 4.
STARCI_LABELS What the machine offers, as gpu=true,arch=arm64.
STARCI_STATE Where this machine keeps results and tools. Default: ~/.cache/starci.
STARCI_STORE A result store shared with other machines. Optional.

Placing steps

On a step
worker = {"gpu": "true"} Only on a worker with that label. Waits until one is free.
prefer = {"speed": "fast"} On such a worker when one is free, on any other when not.
avoid = {"network": "home"} Never on a worker with that label.

starci run warns before submitting when no connected worker can take a step.

Looking after workers

starci workers          # who is connected, and what they offer
starci shun luigi       # finish what it has, take nothing new
starci unshun luigi

Superseded runs

A run for a branch replaces the run before it: starting one cancels any still in progress for the same repository and branch, and stops their containers. Runs for different branches, or for a bare commit, leave each other alone.