Affects Version/s: None
Fix Version/s: v2.3.0
The task is to prepare Jenkins configuration which should be triggered manually only.
The build should:
- Merge dev -> master
- Tag and deploy the main code on master branch (mvn release:prepare && mvn release:perform)
- Deploy the documentation: on the tagged version mvn clean package site && mvn site:deploy
- Build the final packages from tag, including RPM (testing skipped at this stage)
- Perform an update on the testbed to the final packages:
- use tar.gz version for this process
- old version should be preserved and the new one installed in a directory next to it (with released version number in folder name)
- new version should be reconfigured to use the same configuration as the previous one (most likely a shared config directory)
- old version stopped, new started
- new version should be checked with some test REST calls
- Upload the final packages to SF to a new folder
- Merge master -> dev
- In dev: update branch version to the next minor/major number, leaving master at default (next revision): mvn versions:set -DgenerateBackupPoms=false -DnewVersion=1.X.0-SNAPSHOT
- In dev: Update the documentation module version in pom to the snapshot version from dev branch
Important point to resolve: update to the new version on testbed can reasonably fail if there were mandatory configuration changes. Until we automatic support config migration this must be somehow taken into account. Perfectly: possibility to resume the release process after manual fixing of configs for the new version.
If possible the released version (parameter to mvn release:prepare should be settable in build parameters.
Finally the https://app.assembla.com/spaces/unity-public/wiki/Release_process needs to be updated with the new process.