2626 # exists; on dispatch we compute the version and validate the tag is free, but
2727 # DO NOT tag yet (the `tag` job below tags only after the gates pass).
2828 prepare :
29- runs-on : ubuntu-latest
29+ runs-on : blacksmith-4vcpu- ubuntu-2404
3030 outputs :
3131 version : ${{ steps.resolve.outputs.version }}
3232 tag : ${{ steps.resolve.outputs.tag }}
7676 # Hermetic gates — the same task targets CI runs on every push/PR.
7777 # The release is blocked unless these pass.
7878 gate :
79- runs-on : ubuntu-latest
79+ runs-on : blacksmith-4vcpu- ubuntu-2404
8080 needs : prepare
8181 steps :
8282 - uses : actions/checkout@v7
@@ -106,7 +106,7 @@ jobs:
106106
107107 # Runtime lane (real Docker containers). ubuntu-latest ships Docker.
108108 gate-runtime :
109- runs-on : ubuntu-latest
109+ runs-on : blacksmith-4vcpu- ubuntu-2404
110110 needs : prepare
111111 steps :
112112 - uses : actions/checkout@v7
@@ -144,7 +144,7 @@ jobs:
144144 # skipped (the tag already exists). The GITHUB_TOKEN push does not re-trigger the
145145 # workflow, so there is no second run.
146146 tag :
147- runs-on : ubuntu-latest
147+ runs-on : blacksmith-4vcpu- ubuntu-2404
148148 needs : [prepare, gate, gate-runtime]
149149 if : github.event_name == 'workflow_dispatch'
150150 steps :
@@ -160,7 +160,7 @@ jobs:
160160 git push origin "${{ needs.prepare.outputs.tag }}"
161161
162162 goreleaser :
163- runs-on : ubuntu-latest
163+ runs-on : blacksmith-4vcpu- ubuntu-2404
164164 needs : [prepare, gate, gate-runtime, tag]
165165 # `tag` is skipped on the push path, so gate on explicit success/skip rather
166166 # than the default all-succeeded semantics.
@@ -193,7 +193,8 @@ jobs:
193193 # Multi-arch image build (arm64 emulated) + buildx driver for the
194194 # dockers:/docker_manifests: blocks in .goreleaser.yml.
195195 - uses : docker/setup-qemu-action@v4
196- - uses : docker/setup-buildx-action@v4
196+ - name : Setup Blacksmith Builder
197+ uses : useblacksmith/setup-docker-builder@v1
197198
198199 # GHCR login. Only reached on the tag path (this workflow is push.tags),
199200 # never on PRs, so images are pushed exclusively from an approved tag run.
@@ -270,7 +271,7 @@ jobs:
270271
271272 # Non-gating: perf/distribution metrics recorded per release, never blocks.
272273 metrics :
273- runs-on : ubuntu-latest
274+ runs-on : blacksmith-4vcpu- ubuntu-2404
274275 needs : [prepare, goreleaser]
275276 continue-on-error : true
276277 steps :
0 commit comments