ci(release): Tag-triggered Maven Central release workflow#7
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthroughA new ChangesMaven Central Release Workflow and Documentation
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/release.yml:
- Line 24: Replace the mutable tag reference `actions/checkout@v7` with a pinned
commit SHA (e.g., `actions/checkout@<specific-commit-sha>`) to ensure a specific
version is used. Additionally, add the `persist-credentials: false` parameter to
the checkout action configuration to disable credential persistence, which
minimizes security risk when handling sensitive secrets like GPG keys and Maven
Central credentials in the release workflow.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 78d08ba6-00a7-48dc-8430-493bdda91179
📒 Files selected for processing (2)
.github/workflows/release.ymlintegration/src/site/asciidoc/releasing.adoc
Commit and standardize release.yml so a pushed v* tag (created by release:prepare) deploys -Prelease to Maven Central. Adds the release-deploy concurrency group and the release environment approval gate, and bumps checkout to v7 — matching the snapshot-deploy workflow and the jdk-setup composite usage. Document the actual flow: release:prepare auto-pushes the tag (pushChanges defaults to true), release.yml waits on the release environment approval gate, then deploys. Add the one-time prerequisites (secrets, release environment, local Docker) and drop the obsolete manual push step. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013DKrZ3wSe6H5HXPzg8iWC6
deploy-snapshot also handles Maven Central credentials and never pushes back to git, so drop the persisted GITHUB_TOKEN. Same hardening as the release workflow. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013DKrZ3wSe6H5HXPzg8iWC6
0aa6922 to
197cda7
Compare
Commits and standardizes
release.ymlso releases publish from CI instead of a localrelease:perform.Flow
mvn release:prepare(local) bumps versions, tagsv<version>, and auto-pushes (pushChangesdefault). The tag triggersrelease.yml, which waits for approval on thereleaseenvironment, then runsdeploy -Prelease(GPG-signed, sources + javadoc, auto-published to Central).Changes
release.yml— committed (was untracked) and standardized:release-deployconcurrency,environment: releaseapproval gate,checkout@v7,jdk-setupcomposite. Keeps-DskipTests -Darchetype.test.skip=true(tests ran duringprepare; the archetype IT needs Docker).releasing.adoc— rewritten for the real (auto-push + gate) flow; adds one-time prerequisites; drops the obsolete manualgit push --tagsstep.Prerequisites before first use
CENTRAL_USERNAME,CENTRAL_TOKEN,GPG_PRIVATE_KEY,GPG_PASSPHRASE(the GPG ones have never been exercised — snapshot deploy doesn't sign).releaseenvironment with a required reviewer (the approval gate).🤖 Generated with Claude Code
https://claude.ai/code/session_013DKrZ3wSe6H5HXPzg8iWC6
Summary by CodeRabbit
Chores
v*) are pushed, gated by a GitHub release environment with reviewer approval.Documentation
release:prepare, including required one-time prerequisites, clearer local preparation steps, updated artifact verification instructions, and a new “Aborting” flow to cancel pending deployments and revert the tag/commits.