Skip to content

ci(release): backport build provenance and release failure fixes to v2.x - #7507

Merged
Coly010 merged 2 commits into
v2.xfrom
backport/7465-7467-release-fixes
Nov 5, 2026
Merged

Coly010 merged 2 commits into
v2.xfrom
backport/7465-7467-release-fixes

Conversation

@Coly010

@Coly010 Coly010 commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

Cherry-picks #7467 and #7465 onto v2.x, as the maintenance line needs both before its next release.

  • ci(release): attest GitHub Release assets with build provenance #7467: attests every GitHub Release asset with build provenance. attestations: write is granted to the publish job and to the release.yml and release-smoke-test.yml callers. The smoke test conflicted, so the permission goes in its top-level block.
  • ci(release): fix recurring release failures since the v3 cut (CLI-2913) #7465: the platform-package wait polls for up to 30 minutes with a 60-minute publish job timeout. backfill-release-notes drops other channels' prerelease tags, rebuilds one channel note per tagged commit from tag names, and forces the release type implied by the tag's own version so a forced maintenance version still gets notes. v2.x's script is plain async, so those changes are ported by hand rather than merged.

Left out of #7465 because v2.x has no next channel and its release.yml only runs as a maintenance dispatch: the next-ahead gate, the in-flight stable release wait, the setup-cli v3 smoke test changes (v2.x covers v1 and v2 only, so wait-for-npm-version.sh would be unused) and the matching docs. propose-release-notes.yml already requests no issues: read, so there is nothing to remove.

jgoux and others added 2 commits November 5, 2026 10:16
Adds a build provenance attestation for every GitHub Release asset,
created in the `publish` job right before the release is made immutable.

- `actions/attest` signs the versioned tarballs, zips, deb/rpm/apk
packages, `checksums.txt` and the `install` script. The unversioned
`supabase_<os>_<arch>.tar.gz` aliases are byte-identical copies, so the
same attestations cover them by digest.
- `attestations: write` is granted to the `publish` job and to both
callers of `release-shared.yml` (`release.yml` and
`release-smoke-test.yml`), since a reusable workflow cannot exceed its
caller's permissions.

Anyone can now verify a downloaded asset with `gh attestation verify
<file> --repo supabase/cli`. Once a release ships with attestations, the
aqua registry entry for `supabase/cli` can add
`github_artifact_attestations` with `signer_workflow:
supabase/cli/.github/workflows/release-shared.yml`, which makes mise and
aqua verify each download against it.

This touches release infrastructure, so it needs a cherry-pick to
`v2.x`.

(cherry picked from commit 96eab1d)
Backports the parts of #7465 that apply to a maintenance line:

- the platform-package wait in publish.ts polls for up to 30 minutes and
  the publish job timeout is 60 minutes
- backfill-release-notes drops other channels' prerelease tags and
  rebuilds one channel note per tagged commit from tag names, and
  forces the release type implied by the tag's own version so a forced
  maintenance version still gets release notes

The next-ahead gate, the in-flight stable release wait, the setup-cli v3
smoke test changes and the next channel docs are left out: v2.x has no
next channel, its release.yml only runs as a maintenance dispatch, and
its setup-cli smoke test covers v1 and v2 only.

(cherry picked from commit 497bf42)
@Coly010
Coly010 requested review from a team and supabase-oss as code owners November 5, 2026 10:20
@Coly010
Coly010 requested a review from Prashansa-K November 5, 2026 10:20

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 AI Review

Both independent reviews completed with zero findings. My additional inspection of the diff, surrounding release code, and trusted conventions found no actionable issues. All 63 release-channel unit tests passed; backfill E2E and npm polling tests were not run.

Findings

No issues found.

Stats

Claude findings: 0 · Codex findings: 0 · Confirmed: 0 · Refuted: 0 · Uncertain: 0


Models: claude-opus-5-5 + gpt-6.1-sol · Trigger: auto · Workflow run

This review runs once per PR. A maintainer can request another with a /ai-review comment.

@jgoux jgoux left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The backport matches #7467 and #7465, and the omissions are safe on v2.x. Attestation subjects match the assets the v2.x publish job uploads, and both callers grant attestations: write.

@Coly010
Coly010 merged commit 8c2b182 into v2.x Nov 5, 2026
52 checks passed
@Coly010
Coly010 deleted the backport/7465-7467-release-fixes branch November 5, 2026 11:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants