runs-on names a machine, not a purpose

The purpose-prefixed labels (hanzo-build-*, hanzo-deploy-*, hanzo-docs-build-*)
are retired in favour of the bare <os>-<arch> every runner already advertises.

They were not a capability, only a habit, and the habit cost builds: papers asked
for hanzo-build-linux-amd64, no online runner offered it, and two idle
linux-amd64 runners sat beside the queue while the build simply never ran. The
lux tree lost three days to lux-linux-amd64 the same way.

What a job is FOR is the workflow's name. runs-on is the machine it needs.

Co-authored-by: Hanzo Dev <[email protected]>
This commit is contained in:
2026-09-15 11:36:45 -07:00
co-authored by Hanzo Dev
parent 5f283e2a83
commit b96e2e2f47
+2 -2
View File
@@ -20,14 +20,14 @@ concurrency:
jobs:
image:
# hanzo-build-linux-amd64, not ubuntu-latest. This file lives in
# linux-amd64, not ubuntu-latest. This file lives in
# .hanzo/workflows, which GitHub never reads -- git.hanzo.ai is the only
# thing that can run it, and the fleet deliberately advertises no generic
# ubuntu-* label (~1400 mirrored forks all ask for it; one bad job was
# retried ~520 times across 10 runners). An unmatched label is not an
# error here, it is silence: the job queues until the 24h timeout, so this
# deploy has never produced an image and nothing ever said so.
runs-on: [hanzo-build-linux-amd64]
runs-on: [linux-amd64]
timeout-minutes: 30
steps:
- uses: actions/checkout@v4