Skip to content

feat(release): add one-click release workflow - #16

Merged
Teakowa merged 1 commit into
mainfrom
feat/workshop-rs-14-release
Aug 17, 2026
Merged

feat(release): add one-click release workflow#16
Teakowa merged 1 commit into
mainfrom
feat/workshop-rs-14-release

Conversation

@Teakowa

@Teakowa Teakowa commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Implements one-click, versioned GitHub Actions releases for workshop-rs.

  • Adds a manual Release workflow with patch, minor, and major bump choices.
  • Computes and mutates the workspace version, publishable CLI dependency version, and Cargo.lock together.
  • Runs fmt, clippy, tests, catalog validation, and package verification before publication.
  • Commits the deterministic release metadata, pushes the immutable vX.Y.Z tag, and publishes workshop-rs before workshop-rs-cli.
  • Builds Linux x86_64/aarch64, macOS x86_64/aarch64, and Windows x86_64 CLI archives with SHA256SUMS.txt.
  • Creates a draft GitHub Release, attaches artifacts and generated notes with revision/catalog identity, then publishes it only after all required jobs succeed.
  • Resumes incomplete releases without silently bumping versions or duplicating published crates/artifacts.
  • Documents the protected release environment, CARGO_REGISTRY_TOKEN, permissions, and main-branch release exception.

The CLI keeps its local path dependency for development while declaring the matching registry version required for publication.

Closes #14.

Validation

  • python3 scripts/test_release.py — 6 passed
  • ruby -e 'require "yaml"; YAML.load_file(".github/workflows/release.yml")'
  • cargo fmt --all --check
  • cargo clippy --locked --workspace --all-targets -- -D warnings
  • cargo test --locked --workspace --all-targets
  • cargo run --locked -p workshop-rs --bin workshop-catalog-gen -- check
  • Rust 1.85.0: fmt, clippy, tests, and catalog check passed
  • cargo package / cargo publish --dry-run passed for both packages with a temporary local registry patch; the real workflow verifies the CLI after the library is visible on crates.io.

@Teakowa
Teakowa marked this pull request as ready for review August 17, 2026 17:20
@Teakowa
Teakowa merged commit aadad25 into main Aug 17, 2026
2 checks passed
@Teakowa
Teakowa deleted the feat/workshop-rs-14-release branch August 17, 2026 17:21
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.

Establish one-click automated releases

1 participant