Last active
June 10, 2024 20:52
-
-
Save jglick/86a30894446ed38f918050c1180483e2 to your computer and use it in GitHub Desktop.
Example of setting up a Jenkins plugin backport branch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
BASE=1.19 # or whatever; last release compatible with targeted core or other deps | |
BASETAG=mystuff-${BASE} # or as per http://maven.apache.org/maven-release/maven-release-plugin/prepare-mojo.html#tagNameFormat | |
FIX=abcd1234 # whatever the backportable fix was, in master or somewhere newer than $BASE | |
git checkout -b ${BASE}.x $(git log --reverse --ancestry-path --pretty=%H ${BASETAG}..master | head -1) | |
# or for JEP-305 (“Incrementals”) use: mvn versions:set-property -Dproperty=revision -DnewVersion=${BASE}.1 | |
mvn versions:set -DnewVersion=${BASE}.1-SNAPSHOT -DgenerateBackupPoms=false | |
git commit -a -m "Prepare for ${BASE}.1" | |
git push -u origin ${BASE}.x | |
git cherry-pick -x -m1 $FIX | |
mvn -B release:{prepare,perform} | |
# For JEP-229 (“CD”): | |
BASE=99 # numeric component of base commit | |
BASETAG=${BASE}.v1234deadbeef # whatever $(mvn -Dset.changelist validate) said | |
FIX=abcd1234 # as before | |
git checkout -b ${BASE}.x ${BASETAG} | |
sed -i -e 's!<version>${changelist}</version>!<version>'$BASE'.${changelist}</version>!g' {,*/}pom.xml # versions:set does not work | |
git commit -a -m "Prepare for ${BASE}.x" | |
git push -u origin ${BASE}.x | |
git cherry-pick -x -m1 $FIX | |
git push | |
# manually trigger release from 99.x branch |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Good point; edited suggestion accordingly.