also looking at this
fix(release): require matching tag and package versions
#292
4 files
+108
-4
| @@ -11,7 +11,19 @@ defaults: | ||
| 11 | 11 | shell: bash |
| 12 | 12 | |
| 13 | 13 | jobs: |
| 14 | validate-release: | |
| 15 | name: validate release identity | |
| 16 | runs-on: ubuntu-latest | |
| 17 | permissions: | |
| 18 | contents: read | |
| 19 | steps: | |
| 20 | - uses: actions/checkout@v6 | |
| 21 | - uses: oven-sh/setup-bun@v2 | |
| 22 | - name: Validate tag and workspace versions | |
| 23 | run: bun scripts/release-version.ts | |
| 24 | ||
| 14 | 25 | pantry: |
| 26 | needs: [validate-release] | |
| 15 | 27 | name: pantry (${{ matrix.platform.name }}) |
| 16 | 28 | strategy: |
| 17 | 29 | fail-fast: false |
| @@ -326,8 +338,8 @@ jobs: | ||
| 326 | 338 | # half of that bargain: the run goes red, naming the assets that are missing. |
| 327 | 339 | verify-release: |
| 328 | 340 | name: verify release assets |
| 329 | needs: [pantry] | |
| 330 | if: ${{ !cancelled() }} | |
| 341 | needs: [validate-release, pantry] | |
| 342 | if: ${{ !cancelled() && needs.validate-release.result == 'success' }} | |
| 331 | 343 | runs-on: ubuntu-latest |
| 332 | 344 | permissions: |
| 333 | 345 | contents: read |
| @@ -413,8 +425,8 @@ jobs: | ||
| 413 | 425 | # `bun install`, and publishes packages built from TypeScript. Signing a Zig |
| 414 | 426 | # binary and publishing an SDK are independent, and the workflow now says |
| 415 | 427 | # so. `!cancelled()` rather than `always()` so a cancelled run still stops. |
| 416 | needs: [pantry] | |
| 417 | if: ${{ !cancelled() }} | |
| 428 | needs: [validate-release, pantry] | |
| 429 | if: ${{ !cancelled() && needs.validate-release.result == 'success' }} | |
| 418 | 430 | runs-on: ubuntu-latest |
| 419 | 431 | permissions: |
| 420 | 432 | contents: write |