CPS Release Process

Deliver Release Artifacts

Way of Working in Gerrit

 

Scope

Action

Results

Examples

Scope

Action

Results

Examples

1

Any Release







Update release notes
Note. Check documentation configuration and release instructions on: Create documentation for an ONAP release (ONAP project teams) 

Note. Also update the openapi info.version property with the version we are releasing for cps-core , NCMP and NCMP-inventory openapi yaml files.

Release notes available on https://docs.onap.org/projects/onap-cps/en/latest/release-notes.html

Change 123658

 

2

Update read-the-docs copies of openapi documentation e.g. for CPS-Core:

copy openapi.yaml
cps-rest/target/generated-sources/openapi/openapi.yaml → docs/api/swagger/cps/openapi.yaml cps-ncmp-rest/target/generated-sources/openapi/openapi.yaml → docs/api/swagger/ncmp/openapi.yaml cps-ncmp-rest/target/generated-sources/openapi/openapi-inventory.yaml → docs/api/swagger/ncmp/openapi-inventory.yaml

For DMI-Plugin:

copy openapi.yaml
target/generated-sources/openapi/openapi/openapi.yaml → docs/api/swagger/openapi.yaml

Note 1. Run mvn clean install locally first to get required files in target subfolders

Note 2. This step can be skipped if there are no OPEN API changes

Latest (amalgamated) openapi.yaml available in read-the-docs

 

3

For DMI Plugin and update any CPS Core release dependency, if needed:

  • ncmp-dmi-plugin/pom.xml (cps.version property)

 

Changes

4

Go to latest Gerrit merged review of repo and comment 'stage-release'

  • maven-stage Jenkins job is triggered

  • maven-docker-stage Jenkins job is triggered

  • Maven artifacts are published to Nexus 2 autorelease repository

  • Docker images are published to Nexus 3 registry

  • Change 124884

  • Job maven-stage-master 145

  • Job maven-docker-stage-master 145

 

5

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.

Note: This step is ignored for CPS Temporal (no Maven artifact delivered)

Note. this file should NOT contain 'tag_release=false'

Maven artifacts are published to maven release repository

6

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 last git commit or the commit of the stage release
Note opinions difference what commit it should be exactly , fact is the ref. value is for  '(future) reference only' The process will complete either way and which commit exactly is bring referred too is quiet moot (not important)

Take the latest built image, retag it without the timestamp :

e.g. SO release file

container_release_tag: '1.1.0' ... ... containers:     - name: 'cps-and-ncmp'       version: '1.1.0-SNAPSHOT-20210609T102555Z'

 

Docker image is published to docker release repository

  • Change 124887

  • Topic CPS-728

  • To get the 'version' for the YAML file you should look up the full console log of the cps-maven-docker-stage-master job from step 4 and search for : 'Built image to Docker daemon as nexus3.onap.org:10003/onap/cps-and-ncmp'. Then you will find the correct version number with the timestamp.

7

Prepare the next drop by bumping patch version (3rd digit)

  1. Update all pom files; set to x.y.z-SNAPSHOT by running "mvn versions:set -DnewVersion=<snapshot version>"

  2. In \version.properties, set to x.y.z

  3. Add section in \docs\release-notes.rst for next release

 

8

Once versions are bumped update the docker-compose file and update the latest images

  • cps-core : docker-compose.yaml

  • ncmp-dmi-plugin: docker-compose.yaml

 

 

9

Update