Deliver Release Artifacts
Step | Action | Results | Examples |
---|---|---|---|
1 | Go to latest Gerrit merged review of repo and comment 'stage-release' | ||
2 | Add and merge 'x.y.z.yaml' file to releases folder of the repository root. It describes the release and refers to maven-stage job previously ran. Set "tag_release: false" as we don't want to tag the repo at this step yet. This will be done at the next step. | Maven artifacts are published to maven release repository | |
3 | Add and merge 'x.y.z-container.yaml' file to releases folder of the repository root. It describes the release and refers to maven-docker-stage job previously ran. Set "ref" to the (full) SHA of the git commit to be tagged. Note. Might need Timestamp tag too. See - CPS-264Getting issue details... STATUS | Docker image is published to docker release repository | |
4 | Update /kubernetes/cps/values.yaml in https://gerrit.onap.org/r/q/project:oom with new image versions | ||
5 | Prepare the next release by bumping and merging new version numbers:
| Repo is ready for next release |
|
Manage Release Branch
Prerequisites
- Code is frozen at M3, no new development is made after M3
- All testing (S3P, Integration Pair Wise) is completed at R0
Steps to create the release branch
- For R0, deliver releases artifacts from master branch as described in previous section.
- Create the release branch in Gerrit for the version you are about to release e.g. 'honolulu'
- Increase pom version numbers
- In master branch, increase minor version number (if not already done)
- In release branch, increase patch version number
- In release branch, update ".gitreview " (change "defaultbranch" value)
- In ci-management repo, configure new Jenkins jobs for the release branch by adding a new release stream to the project. e.g. https://gerrit.onap.org/r/c/ci-management/+/118868/1/jjb/cps/cps.yaml
Steps to Deliver Release Patches
- Decide with team if a bug should be dropped back to previous release or not, consider things like (use fix-version field in Jira to indicate this)
- bug was reported by user of previous release (easy decision )
- bug exposes behavior that was not in line with acceptance criteria for a user story that was delivered in previous release
- Make the fix and have it merged in master branch
- use minimal code to avoid merge/drop back issues
- specific test for bug fix should be included where possible
- Cherry pick the fix from master branch to release branch
- From Gerrit:
- Navigate to ... / Cherry Pick
- Fill the form with the release branch name (honolulu) in "Cherry Pick to branch" field and click "Cherry Pick"
- Using local branch (to resolve cherry-pick conflicts):
- Create local branch from honolulu
- Cherry-pick commit from master branch
- Resolve conflicts
- git push origin HEAD:refs/for/honolulu (or git review)
- From Gerrit:
- Review patch by peers as normal
- To facilitate the review, ensure that gerrit merge requests both in master and release branches have the same topic including Jira Issue ID, then related fixes can be easily retrieved (ex: https://gerrit.onap.org/r/q/topic:%2522bugfix/CPS-292-error-details%2522).
- Update Release version in a separate commit if and when required
A few bugs can be combined in one patch.
Release notes doc should be updated too
Typically only the 'patch' number (last digit) should be increased. See also - Once the fix is in release branch, deliver releases artifacts from release branch as described in previous section.