Skip to content

ci: gate releases on CI, and bump the deprecated action versions - #5

Merged
lr00429 merged 1 commit into
mainfrom
ci/gate-release-and-bump-actions
Aug 24, 2026
Merged

lr00429 merged 1 commit into
mainfrom
ci/gate-release-and-bump-actions

Conversation

@lr00429

@lr00429 lr00429 commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Why

Two independent trigger paths: CI runs on branch push, Release runs on tag push. Release ran no checks of its own — so a tag on a red commit builds and publishes signed binaries anyway, and the first sign of trouble is a release that already shipped.

That nearly happened at v0.4.0. The tagged commit failed cargo fmt --check, and the release build was only stopped by cancelling it by hand.

What

Gate. Release now runs CI before it builds anything: checks → build → publish. It calls the CI workflow rather than restating its steps, so the gate can't check less than CI does as CI grows.

Action bumps. actions/checkout and actions/setup-node v4 → v7. Both were being force-migrated off the deprecated Node 20 actions runtime. The v5/v6 setup-node breaking change — automatic caching driven by the packageManager field — doesn't reach us, since both workflows already pass cache: npm explicitly and an explicit value still wins.

Left alone deliberately. Swatinem/rust-cache is already on the current major. tauri-apps/tauri-action @v0 → v1 is a major bump straight through the signing and notarization path — that wants a deliberate test, not a drive-by.

Verification

This PR exercises the bumped actions via its own CI run. The release gate itself is only fully exercisable on a tag push, so it gets its real test at the next release — the failure mode if the reusable-workflow wiring is wrong is a release that refuses to build, not one that ships unchecked.

🤖 Generated with Claude Code

The Release workflow triggers on a tag push, CI on a branch push — two
independent paths. Release ran no checks of its own, so a tag on a red
commit built and published signed binaries regardless, with a shipped
release as the first sign of trouble. That nearly happened at v0.4.0: the
tagged commit failed `cargo fmt --check` and the release build was only
stopped by hand.

Release now runs CI as a gate before it builds anything. It calls the CI
workflow rather than restating its steps, so the gate can't check less
than CI does as CI grows. Chain is checks → build → publish.

Also bump actions/checkout and actions/setup-node v4 → v7. Both were
being force-migrated off the deprecated Node 20 actions runtime. The
v5/v6 setup-node break — automatic caching driven by the packageManager
field — doesn't reach us: both workflows already ask for `cache: npm`
explicitly, and an explicit value still wins.

Left alone deliberately: Swatinem/rust-cache, already on the current
major, and tauri-apps/tauri-action, where @v0 → v1 is a major bump in the
signing and notarization path and wants a deliberate test, not a
drive-by.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@lr00429
lr00429 merged commit 5e5c06d into main Aug 24, 2026
3 checks passed
@lr00429
lr00429 deleted the ci/gate-release-and-bump-actions branch August 24, 2026 11:42
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.

1 participant