Skip to content

Release Process

Artur Souza edited this page Jan 31, 2020 · 40 revisions

Release by GitHub Actions

  1. Latest build in master branch
    • maven pom version includes -SNAPSHOT suffix
    • Push snapshot package to nexus repository
  2. Release Candidate build in release-X.Y branch
    • maven pom version includes X.Y.Z-rc-W suffix
    • tagging vX.Y.Z-rc-W triggers build to publish X.Y.Z-rc-W to nexus snapshot repository
  3. Release build in release-X.Y branch
    • maven pom version MUST NOT have any suffix
    • tagging vX.Y.Z triggers build to publish X.Y.Z to nexus central repository

Release steps

  1. Create release-X.Y branch and push
git checkout -b release-X.Y

mvn versions:set -DnewVersion=X.Y.Z-rc-W
mvn versions:commit

git commit -m "Release X.Y.Z-rc-W" -a
git push origin release-X.Y
  1. Prepare next release: Update version in master branch
git checkout master
git pull
git checkout -b next-release
mvn versions:set -DnewVersion=X.Y.Z-SNAPSHOT
mvn versions:commit
git commit -m "Upgrade the version to X.Y.Z-SNAPSHOT" -a
git push origin next-release
  1. Prepare next release: Create PR from next-release branch to master branch

  2. Tag RC version (vX.Y.Z-rc-W)

git push origin release-X.Y
git tag vX.Y.Z-rc-W
git push origin --tags
  1. GitHub Actions will build and publish RC pkgs to Nexus OSS repository
  2. Test RC builds and fix the bugs
  3. Repeat from step 4 to step 6 until all bugs are fixed.
  4. Remove suffix by using mvn command
mvn versions:set -DnewVersion=X.Y.Z
mvn versions:commit
  1. Push the change to release-X.Y
git commit -m "Release X.Y.Z" -a
git push origin release-X.Y
  1. Create version tag and push it
git tag vX.Y.Z
git push origin --tags
  1. CI will release final build to central repository

Version naming:

Naming convention is inspired by the one used in JUnit

  • Preview prior to a release candidate (optional): X.Y.Z-beta-W
  • Release candidate: X.Y.Z-rc-W
  • Release: X.Y.Z
Clone this wiki locally