Skip to content

Add verified binary release workflow - #14

Merged
merefield merged 3 commits into
masterfrom
binary_release_workflow
Aug 23, 2026
Merged

Add verified binary release workflow#14
merefield merged 3 commits into
masterfrom
binary_release_workflow

Conversation

@merefield

Copy link
Copy Markdown
Owner

Summary

  • add a hardened tag-driven GoReleaser workflow for GitHub Releases
  • publish static Linux, macOS, and Windows archives for AMD64 and ARM64 with SHA-256 checksums
  • add a verified Linux/macOS installer with latest and pinned-version support
  • add offline Bats coverage for installer success and failure paths
  • make the prebuilt release the recommended install path and document release operations
  • advance the development/release version to 0.2.1

Validation

  • make check
  • shellcheck install-release.sh
  • GoReleaser v2.17.1 configuration check
  • YAML parsing for all workflow and release configuration files
  • cross-compilation for Linux, macOS, and Windows on AMD64 and ARM64

Release note

The existing v0.2.0 tag remains immutable. Tag v0.2.1 only after this PR reaches master; that tag will exercise the new workflow and create the first binary release assets.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

The new installer’s input validation has a concrete defect (repository format check) and a tag-validation mismatch with the release workflow that can cause valid releases to fail installation.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Adds a tag-driven, GoReleaser-based binary release pipeline with an accompanying verified installer, updates documentation to recommend that install path, and bumps the project version to 0.2.1.

Changes:

  • Introduce a hardened GitHub Actions release workflow plus GoReleaser configuration for multi-OS/arch archives and checksums.
  • Add install-release.sh and offline Bats integration tests for installer success/failure paths.
  • Update docs, CI, Make targets, and version strings to reflect the new release/install flow and 0.2.1.
File summaries
File Description
test/install-release.bats Adds offline Bats tests for the release installer (success + multiple failure modes).
termcourse.go Bumps development fallback version to 0.2.1.
termcourse_test.go Updates version expectations for build override and dev version formatting.
README.md Documents the recommended prebuilt release installer and release operations.
meta-topic.md Updates installation instructions to prefer the release installer and mentions pinned installs.
Makefile Adds check, integration tests, install/clean targets, and tightens build flags.
internal/ui/ui_test.go Updates UI test expectations to the 0.2.1 version string.
install-release.sh Adds a verified release installer for Linux/macOS with checksum + version verification.
.goreleaser.yaml Adds GoReleaser v2 config for cross-platform archives and checksums.
.github/workflows/release.yml Adds tag-driven + dispatchable release workflow with validation and publish steps.
.github/workflows/ci.yml Aligns CI with make check, adds GoReleaser config validation, and installs Bats.
Review details
  • Files reviewed: 11/11 changed files
  • Comments generated: 2
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread install-release.sh
Comment thread install-release.sh
@merefield
merefield merged commit 8744f91 into master Aug 23, 2026
2 checks passed
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