Skip to content
Janne Valkealahti edited this page Sep 30, 2024 · 7 revisions

Release Process

Release for a milestone or GA is done via GitHub Actions. Process is mostly automated to make process stable but due to distributed nature, things may be unstable whatever happens withing a release build process.

Doing a Release

When release is requested via GitHub workflow dispatch, things are generally speaking automated but what comes for a promotion between staging repos into milestone/release repos and sync to central, workflows will ask manual approval to continue. This is a stop having a person doing a release to do manual checks before committing particular release.

Release GA

Generally speaking release process is to pick Release GA workflow and execute it manually with a particular branch. You need to manually update gradle.properties for next snapshot version.

Release Milestone

Generally speaking milestone process is to pick Release Milestone workflow and execute it manually with a given milestone version as M1, RC1, etc and with a particular branch.

When Things Go Wrong

When things didn't go as planned this is a section to read. As there's many points where things may fail, we need to choose if to manually continue to finish release tasks or revert and restart whole release process. This depends on where release failed and sometimes it's easier to manually complete rather than revert and re-do.

Clean GitHub tags/repos

If release process pushed a build branch and a tag, these needs to be removed before next release attempt is made as next push would fail.

For example during backporting GH release things into older branches mistakes were made and we resulted:

$ git branch -la|grep 2.2.3
  remotes/origin/2.2.3
$ git tag -l|grep 2.2.3
v2.2.3