Skip to content

Add Ruby 4.0 to CI and automate gem releases#3

Merged
sebyx07 merged 1 commit into
mainfrom
ci/latest-ruby-and-release-automation
Jun 27, 2026
Merged

Add Ruby 4.0 to CI and automate gem releases#3
sebyx07 merged 1 commit into
mainfrom
ci/latest-ruby-and-release-automation

Conversation

@sebyx07

@sebyx07 sebyx07 commented Jun 27, 2026

Copy link
Copy Markdown
Owner

Summary

  • Set up the local dev env on Ruby 3.4.7 (mise); confirmed compile + 28 specs + RuboCop all green.
  • Expanded CI to test the latest Ruby and added fully automated, secretless gem releases.

CI

  • Test matrix now covers Ruby 3.3, 3.4, and 4.0; lint + benchmark jobs bumped to 3.4.
  • Verified locally: extension builds and 28/28 specs pass on Ruby 4.0.5, clang-format --Werror clean, RuboCop 0 offenses.
  • Dev Ruby pinned to 3.4.7 (mise.toml) with .ruby-version aligned.

Release automation

  • .github/workflows/release.yml: on a v* tag → gate on compile + spec → verify tag matches ZSV::VERSION → publish to RubyGems via trusted publishing (OIDC, no stored API key) → create a GitHub Release.
  • rake release:tag: tags the current ZSV::VERSION and pushes it (CI does the actual gem push); refuses on a dirty tree or existing tag.
  • docs/RELEASING.md: one-time trusted-publisher setup + per-release flow.

Release flow

Bump lib/zsv/version.rb → add a CHANGELOG.md section → commit → bundle exec rake release:tag.

🤖 Generated with Claude Code

CI:
- Test matrix now covers Ruby 3.3, 3.4, and 4.0 (latest); lint and
  benchmark jobs bumped to 3.4. Verified the extension builds and all
  28 specs pass on 4.0.5 and clang-format/rubocop gates are clean.
- Pin dev Ruby to 3.4.7 via mise.toml and align .ruby-version.

Release automation:
- release.yml publishes the gem on a v* tag via RubyGems trusted
  publishing (OIDC, no stored API key) and creates a GitHub Release,
  gated on a green compile + spec run and a tag/version match check.
- rake release:tag tags ZSV::VERSION and pushes it (CI does the push).
- docs/RELEASING.md documents the one-time setup and per-release flow.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@sebyx07 sebyx07 merged commit e5d432b into main Jun 27, 2026
10 checks passed
@sebyx07 sebyx07 deleted the ci/latest-ruby-and-release-automation branch June 27, 2026 00:39
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