ci(docker): target ARC scale set by name + mode=min cache

runs-on was [self-hosted, linux, amd64], which GitHub matched to the OFFLINE
classic evo-* org runners instead of the live ephemeral ARC scale set, so every
Docker run since the self-contained-build switch queued forever (never built).
Use runs-on: hanzo-build-linux-amd64 (the exact scaleSetName), matching the
hanzoai/iam convention, so jobs route to scale set 31.

Also switch buildx gha cache to mode=min: the runner builds via DinD on a 32G
node and mode=max exported every layer, ballooning the DinD store past the
kubelet eviction threshold (NodeHasDiskPressure -> build killed 'no space').
This commit is contained in:
zooqueen
2026-06-23 15:40:29 -07:00
parent aba085af6b
commit 4457fd637e
+10 -2
View File
@@ -13,7 +13,11 @@ permissions:
packages: write
jobs:
docker:
runs-on: [self-hosted, linux, amd64]
# Target the ARC scale set by NAME (the org convention, cf. hanzoai/iam).
# A label array like [self-hosted, linux, amd64] matches the OFFLINE classic
# `evo-*` runners instead of the live ephemeral scale set, so every run
# queued forever. ARC scale-set jobs route on the exact scaleSetName.
runs-on: hanzo-build-linux-amd64
steps:
- uses: actions/checkout@v4
@@ -45,4 +49,8 @@ jobs:
ghcr.io/hanzoai/id:${{ steps.tags.outputs.sha }}
ghcr.io/hanzoai/id:${{ steps.tags.outputs.ver }}
cache-from: type=gha,scope=hanzoai-id
cache-to: type=gha,scope=hanzoai-id,mode=max
# mode=min (not max): the ARC runner builds via DinD on a 32G node;
# exporting every intermediate layer (mode=max) ballooned the DinD
# store past the kubelet eviction threshold and killed builds with
# "no space left". min caches only the final image layers.
cache-to: type=gha,scope=hanzoai-id,mode=min