chore: release pipeline cleanup + GitHub Actions release workflow#6
Merged
xsoheilalizadeh merged 7 commits intomainfrom Apr 30, 2026
Merged
chore: release pipeline cleanup + GitHub Actions release workflow#6xsoheilalizadeh merged 7 commits intomainfrom
xsoheilalizadeh merged 7 commits intomainfrom
Conversation
…enerate notes - Removed wrangler from prereq check and the R2 upload block. Binaries are served from GitHub Releases only (signed + notarized + checksummed). - Replaced `git add -A` with `git add Cargo.toml Cargo.lock` so the release commit only carries the version bump. - Switched gh release create from --notes "Release vX.Y.Z" to --generate-notes for auto-categorized release notes from PR titles.
…all.sh - scripts/test-release.sh: removed Test 5 (Changelog update) — the CHANGELOG.md sed step was deleted from release.sh in 5e5e2fd and the test was exercising nonexistent behavior. Updated header comment to reflect current test inventory. - o8v/tests/unit_release_pipeline.rs: removed changelog_sed_preserves_unreleased_and_adds_version for the same reason. - scripts/install.sh: added _8V_BASE_URL support (validate_base_url function + honored in get_version and download_binary) so the test-install.sh E2E test is no longer a silent lie. The env var is only accepted when set to https:// or http://localhost/127.0.0.1. All existing install E2E tests now exercise real install.sh code paths.
…ommitted binary - .gitignore: removed .wrangler/ entry (wrangler was dropped in f68dedf, nothing in the repo uses it). - .gitignore: added o8v/tests/fixtures/build-go/buildtest so the compiled Go artifact produced by `go build` during test runs is not accidentally committed again. - git rm: removed the 2.4MB compiled buildtest binary that was committed; the Go build tests (e2e_build.rs, e2e_go.rs) build the binary at runtime via `go build`, confirmed passing after removal.
Tag push vX.Y.Z → CI builds all 4 binaries, signs + notarizes macOS, generates checksums.txt, creates GitHub release with --generate-notes. Platform matrix: - macos-latest → darwin-arm64 (aarch64) + darwin-x64 (x86_64), native - ubuntu-latest → linux-x64 (musl) + linux-arm64 (musl) via cargo-zigbuild Required GitHub Secrets (must be added before first use; see RELEASING.md): MACOS_CERTIFICATE — base64-encoded Developer ID .p12 certificate MACOS_CERTIFICATE_PWD — password for the .p12 APPLE_API_KEY — base64-encoded App Store Connect .p8 API key APPLE_KEY_ID — key ID (10-char string, e.g. ABCDE12345) APPLE_ISSUER_ID — issuer UUID from App Store Connect The workflow does NOT bump versions or commit — that remains the local scripts/release.sh job. The workflow assumes the vX.Y.Z tag was pushed manually after the version-bump commit landed on main.
Documents both paths: local scripts/release.sh and tag-triggered .github/workflows/release.yml. Includes local prerequisites, required GitHub Secrets (with how to encode them), versioning policy (semver), and how release notes are generated from PR titles.
The GitHub Actions workflow (.github/workflows/release.yml) is the only release path. The local scripts duplicated the workflow's logic and drifted (R2/wrangler removal landed in working tree months ago, never in commits, ran today's release with stale logic). Versioning is now: edit Cargo.toml, commit, tag, push. The workflow takes over.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Removes the redundant local release scripts. The GitHub Actions workflow (
.github/workflows/release.yml) is now the single release path — no local tooling required.Changes
scripts/release.sh(411 lines) — deletedscripts/bump-version.sh(45 lines) — deletedscripts/test-release.sh(378 lines) — deleted; tested only the now-deleted scripts end-to-enddocs/RELEASING.md— rewritten to one path: editCargo.toml, commit, tag, pusho8v/tests/unit_release_pipeline.rs— updated two tests that usedinclude_str!on the deleted scripts; they now read from the workflow file insteadRequired GitHub Secrets
One-time setup in repo Settings → Secrets → Actions:
MACOS_CERTIFICATE.p12MACOS_CERTIFICATE_PWD.p12APPLE_API_KEY.p8notarization API keyAPPLE_KEY_IDAPPLE_ISSUER_ID