4545
4646jobs :
4747 build :
48- runs-on : large-linux-x86
48+ runs-on : blacksmith-32vcpu-ubuntu-2404
49+ env :
50+ BUN_SHELL : ${{ inputs.shell }}
51+ VERSION : ${{ inputs.version }}
4952 steps :
5053 - name : Checkout
5154 uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
5457 uses : ./.github/actions/setup
5558
5659 - name : Setup Go
57- uses : actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
60+ uses : actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
5861 with :
5962 go-version-file : apps/cli-go/go.mod
6063 cache : true
@@ -71,10 +74,10 @@ jobs:
7174 sudo apt-get install -y nfpm
7275
7376 - name : Sync versions
74- run : pnpm exec bun apps/cli/scripts/sync-versions.ts --version ${{ inputs.version }}
77+ run : pnpm exec bun apps/cli/scripts/sync-versions.ts --version "${VERSION}"
7578
7679 - name : Build selected shell
77- run : pnpm exec bun apps/cli/scripts/build.ts --version ${{ inputs.version }} --shell ${{ inputs.shell }}
80+ run : pnpm exec bun apps/cli/scripts/build.ts --version "${VERSION}" --shell "${BUN_SHELL}"
7881
7982 - name : Verify build artifacts
8083 run : |
@@ -95,11 +98,19 @@ jobs:
9598
9699 smoke-test :
97100 needs : build
101+ # macos-15-intel is the slowest smoke leg and the only one not on
102+ # Blacksmith (Blacksmith macOS is ARM-only). Skip it on prereleases
103+ # (PR smoke + develop -> beta) so beta wall-clock isn't gated by it;
104+ # stable releases on main still run the full matrix.
105+ if : ${{ !(matrix.runner == 'macos-15-intel' && inputs.prerelease) }}
98106 strategy :
99107 fail-fast : false
100108 matrix :
101- runner : [ubuntu-latest, macos-latest, macos-15-intel, windows-latest ]
109+ runner : [blacksmith-8vcpu- ubuntu-2404, blacksmith-6vcpu- macos-latest, macos-15-intel, blacksmith-8vcpu- windows-2025 ]
102110 runs-on : ${{ matrix.runner }}
111+ env :
112+ NPM_TAG : ${{ inputs.npm_tag }}
113+ VERSION : ${{ inputs.version }}
103114 steps :
104115 - name : Checkout
105116 uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
@@ -128,13 +139,21 @@ jobs:
128139 run : chmod +x packages/cli-*/bin/supabase || true
129140
130141 - name : Run smoke tests
131- run : pnpm run test:smoke -- --version ${{ inputs.version }} --tag ${{ inputs.npm_tag }}
142+ # Force bash so ${VERSION}/${NPM_TAG} expand identically across the
143+ # ubuntu/macos/windows matrix — windows-latest defaults to pwsh, which
144+ # treats those as empty PowerShell variables (env vars are `$env:VAR`).
145+ shell : bash
146+ run : pnpm run test:smoke -- --version "${VERSION}" --tag "${NPM_TAG}"
132147 working-directory : apps/cli
133148
134149 publish :
135150 needs : smoke-test
136151 if : ${{ !inputs.dry_run }}
137- runs-on : ubuntu-latest
152+ runs-on : blacksmith-2vcpu-ubuntu-2404
153+ env :
154+ CHANNEL : ${{ inputs.channel }}
155+ NPM_TAG : ${{ inputs.npm_tag }}
156+ VERSION : ${{ inputs.version }}
138157 permissions :
139158 contents : write
140159 id-token : write
@@ -151,10 +170,10 @@ jobs:
151170 name : cli-build-${{ inputs.shell }}-${{ inputs.version }}
152171
153172 - name : Sync versions
154- run : pnpm exec bun apps/cli/scripts/sync-versions.ts --version ${{ inputs.version }}
173+ run : pnpm exec bun apps/cli/scripts/sync-versions.ts --version "${VERSION}"
155174
156175 - name : Publish to npm
157- run : pnpm exec bun apps/cli/scripts/publish.ts --tag ${{ inputs.npm_tag }}
176+ run : pnpm exec bun apps/cli/scripts/publish.ts --tag "${NPM_TAG}"
158177
159178 # Push the version tag to origin as soon as npm has the bytes, before any
160179 # downstream step that can fail. Without this, a failure in the GH-release
@@ -166,7 +185,7 @@ jobs:
166185 - name : Push version tag
167186 run : |
168187 set -euo pipefail
169- tag="v${{ inputs.version } }"
188+ tag="v${VERSION }"
170189 git config user.name "github-actions[bot]"
171190 git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
172191 if git ls-remote --tags origin "refs/tags/${tag}" | grep -q .; then
@@ -193,8 +212,8 @@ jobs:
193212 if : ${{ inputs.prerelease }}
194213 run : |
195214 set -euo pipefail
196- tag="v${{ inputs.version } }"
197- channel="${{ inputs.channel } }"
215+ tag="v${VERSION }"
216+ channel="${CHANNEL }"
198217 note_ref="refs/notes/semantic-release-${tag}"
199218 if git ls-remote origin "${note_ref}" | grep -q .; then
200219 echo "Channel note ${note_ref} already on origin; skipping push."
@@ -211,7 +230,7 @@ jobs:
211230 run : |
212231 set -euo pipefail
213232 for triple in darwin_arm64 darwin_amd64 linux_arm64 linux_amd64 windows_arm64 windows_amd64; do
214- cp "dist/supabase_${{ inputs.version } }_${triple}.tar.gz" "dist/supabase_${triple}.tar.gz"
233+ cp "dist/supabase_${VERSION }_${triple}.tar.gz" "dist/supabase_${triple}.tar.gz"
215234 done
216235
217236 - name : Create draft GitHub Release
@@ -247,12 +266,15 @@ jobs:
247266 - name : Publish GitHub Release (immutable)
248267 env :
249268 GH_TOKEN : ${{ github.token }}
250- run : gh release edit v${{ inputs.version }} --draft=false
269+ run : gh release edit " v${VERSION}" --draft=false
251270
252271 publish-homebrew :
253272 needs : publish
254273 if : ${{ !inputs.dry_run && inputs.publish_brew_scoop }}
255- runs-on : ubuntu-latest
274+ runs-on : blacksmith-2vcpu-ubuntu-2404
275+ env :
276+ BREW_NAME : ${{ inputs.brew_name }}
277+ VERSION : ${{ inputs.version }}
256278 steps :
257279 - name : Checkout
258280 uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
@@ -284,14 +306,17 @@ jobs:
284306 git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
285307
286308 - name : Update Homebrew formula
287- run : pnpm exec bun apps/cli/scripts/update-homebrew.ts --version ${{ inputs.version }} --name ${{ inputs.brew_name }}
309+ run : pnpm exec bun apps/cli/scripts/update-homebrew.ts --version "${VERSION}" --name "${BREW_NAME}"
288310 env :
289311 GITHUB_TOKEN : ${{ steps.app-token.outputs.token }}
290312
291313 publish-scoop :
292314 needs : publish
293315 if : ${{ !inputs.dry_run && inputs.publish_brew_scoop }}
294- runs-on : ubuntu-latest
316+ runs-on : blacksmith-2vcpu-ubuntu-2404
317+ env :
318+ SCOOP_NAME : ${{ inputs.scoop_name }}
319+ VERSION : ${{ inputs.version }}
295320 steps :
296321 - name : Checkout
297322 uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
@@ -323,6 +348,6 @@ jobs:
323348 git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
324349
325350 - name : Update Scoop manifest
326- run : pnpm exec bun apps/cli/scripts/update-scoop.ts --version ${{ inputs.version }} --name ${{ inputs.scoop_name }}
351+ run : pnpm exec bun apps/cli/scripts/update-scoop.ts --version "${VERSION}" --name "${SCOOP_NAME}"
327352 env :
328353 GITHUB_TOKEN : ${{ steps.app-token.outputs.token }}
0 commit comments