You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci(release): compress binary assets + only release on a new version
The release job in ci.yml uploaded raw Bun --compile binaries (~60–94MB each)
on EVERY push to main. Two fixes:
1. Compress assets. "Prepare release assets" now tar.gz's each unix binary
(chmod +x first, preserving the exec bit) and zip's the windows .exe, plus a
SHA256SUMS. Download drops ~55–65% (~30–40MB). The files: list and the
release-body download table/example were updated (extract step added).
2. Stop releasing on every commit. New version-gate job sets should_release
based on whether refs/tags/v<package.json version> already exists on origin.
build, docker, and release now run only when the version is NEW — so a
docs/chore commit (no version bump) no longer rebuilds 5×~90MB binaries,
re-pushes docker, or cuts a duplicate release. The release job gates
explicitly on the version-gate output (not implicit success() propagation).
3. Delete the dead release.yml. It triggered on push:tags:v* but never ran
(the tag is created by the release job's softprops action via GITHUB_TOKEN,
which does not trigger tag-push workflows) and lacked the windows target.
Note: docker :latest/:sha/:date now publish on a version bump rather than every
main commit — :latest tracks the latest release. Static-validated only (YAML +
bash -n); GitHub Actions can't run locally, so it is exercised on the next
release. skeptic review: CONDITIONAL → addressed (explicit release gate applied;
docker-gating behavior change acknowledged as intentional).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
0 commit comments