-
Notifications
You must be signed in to change notification settings - Fork 4
Automate release workflow via GitHub releases using Maven release plugin #346
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-authored-by: thomasturrell <1552612+thomasturrell@users.noreply.github.com>
Co-authored-by: thomasturrell <1552612+thomasturrell@users.noreply.github.com>
…ng guide Co-authored-by: thomasturrell <1552612+thomasturrell@users.noreply.github.com>
Co-authored-by: thomasturrell <1552612+thomasturrell@users.noreply.github.com>
|
@copilot I propose updating the release workflow to use the tag created by the user as the single source of truth for the release version. The release flow would work as follows: User action: Create a GitHub Release (for example, tag v1.2.0) Additional improvements |
…ranch auto-detection Co-authored-by: thomasturrell <1552612+thomasturrell@users.noreply.github.com>
Implemented your proposed design! The workflow now:
The tag is moved by Maven's release plugin to point to the actual release commit, and commits are pushed directly to the target branch you selected when creating the release. Implemented in commit f096dff. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR automates the xAPI Java release process by introducing a GitHub Actions workflow that triggers on release creation, replacing the previous manual multi-step process with a streamlined one-click solution using Maven's standard release plugin.
Key Changes:
- New automated release workflow (
release.yml) that handles version management, builds, testing, and Maven Central deployment via Maven release plugin - Comprehensive documentation (
RELEASING.md) with workflow diagrams, troubleshooting guides, and secret configuration requirements - Deprecation of manual release workflow (
maven-publish.yml) while maintaining backward compatibility
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
.github/workflows/release.yml |
New automated release workflow that validates tags, detects target branches, manages versions via Maven release plugin, and deploys to Maven Central |
RELEASING.md |
Comprehensive documentation covering the automated release process, workflow diagrams, troubleshooting scenarios, and required secrets configuration |
README.md |
Adds reference link to RELEASING.md in the Contributing section |
.github/workflows/maven-publish.yml |
Marks existing manual release workflow as deprecated with clear migration instructions |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: thomasturrell <1552612+thomasturrell@users.noreply.github.com>
…ve cleanup step Co-authored-by: thomasturrell <1552612+thomasturrell@users.noreply.github.com>
thomasturrell
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@copilot see comments
Co-authored-by: thomasturrell <1552612+thomasturrell@users.noreply.github.com>
|



✅ Automated Release Workflow - COMPLETE
This PR fully automates the release process using Maven's standard release plugin, eliminating all manual steps and enabling releases entirely through GitHub's UI.
🎯 All Acceptance Criteria Met
✅ Release workflow triggers entirely from GitHub interface
vX.Y.Z✅ Uses Maven release plugin for version management
release:prepareto manage pom.xml versions and commitsrelease:performto build and deploy artifacts✅ Branch auto-detection
target_commitish✅ Maven pom.xml versioning automatically managed
autoVersionSubmodules✅ Release artifacts deployed automatically
✅ All manual steps eliminated
📦 Changes Summary
1. Updated Workflow
.github/workflows/release.yml(138 lines)Complete automation using Maven release plugin with 9 steps:
target_commitishrelease:preparewith release version (Maven calculates next version)release:performto build and deployKey Features:
Simplifications:
-DremoteTaggingparameter2. Updated
.github/workflows/maven-publish.yml3. Updated Documentation
RELEASING.md(streamlined)Focused documentation covering:
Removed unnecessary sections:
4. Updated
README.md🔄 How It Works
User Action (1 step)
Automated Workflow (9 steps, ~5-10 minutes)
Result
🛡️ Security & Quality
📊 Testing & Validation
Pre-Deployment Checks ✅
💡 Benefits
For Release Managers
For Developers
For Users
📝 Files Changed
.github/workflows/release.yml.github/workflows/maven-publish.ymlRELEASING.mdREADME.mdNet change: -51 lines (more concise and cleaner!)
🚀 Ready to Use
The automated release workflow is:
Next Steps
📚 Documentation
RELEASING.mdRELEASING.mdStatus: ✅ COMPLETE - READY FOR REVIEW AND MERGE
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.