-
Notifications
You must be signed in to change notification settings - Fork 203
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
Refactor build and release workflows #574
Conversation
Converting to draft as there's still work to be done. Requires a release of jreleaser/jreleaser#658 |
Added Homebrew and Sdkman configuration Both |
Thanks a lot for your work, @aalmiray !
Id vote for triggering by a tag, but how about the third option: let release-candidate create the tag itself? |
This is of course possible but here I wonder how will the workflow interact with the Apache Maven release process? I'm not familiar with it so that's why I did not push to automate that part just yet. Who and when is responsible for tagging a repository before a vote is started? If the tag happens earlier in the process and IF this workflow creates the tag then the changelog will be ready before the e-mail vote is sent, right? Perhaps @hboutemy may help us clarify this point 😄 |
I think we can somehow mimic the process with pure maven: when So I think a manual trigger which would set the version and create a tag before building the binaries is fine. We then need to be able to review and vote on the packages which will be published during a next step. |
Right. If the maven release plugin is used then a tag and a new version will be already set. The release-candidate workflow would have to be changed to be triggered on tag creation and keep JReleaser from creating a tag (as it's already there). If the release-candidate workflow were the starting point then you'd have to change version from snapshot to release (in all poms), let JReleaser create the tag (or explicit tag in the workflow), issue a deploy to Maven Central (not using the release plugin), and to be honest it already sounds complicated, at least to me. Starting the release process with the maven release plugin, having the release-candidate be triggered on tag creation sounds better to me from a minimalistic automation POV, less moving parts IMHO. |
Sorry if I've been misunderstood. I did not imply we should keep the maven release process, but I was only describing the usual release process for simple maven based projects. So a manual trigger can be used as the starting point and have jreleaser create the tag itself as part of its release process. We just need to be able to vote on the packages (so they need to be built and staged) before being published. |
Got it. But you do raise a point with moving the version to the next available number and publishing artifacts to Maven Central. Version bump can happen with the If mvnd does not deploy artifacts to Maven Central then the release plugin may still be used for handling the numbering scheme while disabling the deploy phase so that no artifacts are pushed to MC, isn't that the case? So we have a few options:
Both options may be triggered from GH actions, matter of fact I'd say it's a must for option 2. Option 1. can still be triggered locally by the release master as the release-candidate workflow would have a tag trigger that does not care if the tag was made locally or on CI. |
Yes, you are right both In your proposed solution, would |
OK, I can adjust the workflows to make use of a tag trigger for If Is that acceptable? |
0b53fec
to
ce26961
Compare
Refactored workflows after testing some settings that were not properly working.
Note the use of a |
Looks good, thanks! |
Have to release JReleaser 1.0.0-M1 before this PR can be merged. The release should happen within the next 2 weeks. In the meantime, let me know of any adjustments should be made. |
PR is ready for review. Notes:
|
ecac568
to
5931a9e
Compare
Looks good, thanks! |
@gnodet are there any plans to release any time soon? |
Yes, a release is long overdue. What's the process now ? |
Once merged, the Then, for a regular release, a release candidate must be voted. Manually trigger the BUT before you do trigger please review the settings for Homebrew and Sdkman. A personal Git access token is required to push the formula to the target Git repository. My suggestion would be to merge this PR and let the early-access release do its work. We can then discuss the steps to post a release following the Apache Maven release process (of which I've never been a party of). We might need the help of an Apache Maven guide (@hboutemy?) |
the process is here https://maven.apache.org/developers/release/maven-project-release-procedure.html |
@aalmiray could you restore the |
Ah, sorry, I think tests are now run with the early-access script. |
I've reverted the merge. I've raised https://issues.apache.org/jira/browse/INFRA-23128 to whitelist the required action before we can attempt to merge again. |
Refactors duplication found in
verify.yaml
by using a matrix.Configures the JReleaser Maven plugin to handle Git releases.
Fixes #542