Difference between revisions of "JVPP/BranchCutting"

From fd.io
Jump to: navigation, search
(JVPP release procedure)
(JVPP release procedure)
 
Line 199: Line 199:
 
* '''Snapshot:''' https://nexus.fd.io/content/repositories/fd.io.snapshot/io/fd/jvpp/
 
* '''Snapshot:''' https://nexus.fd.io/content/repositories/fd.io.snapshot/io/fd/jvpp/
 
* '''Release''' https://nexus.fd.io/content/repositories/fd.io.release/io/fd/jvpp/
 
* '''Release''' https://nexus.fd.io/content/repositories/fd.io.release/io/fd/jvpp/
 +
 +
=== Prepare release notes .1 (RC0) patch ===
 +
 +
Prepare patch with updated release notes for next release cycle on stable branch.
 +
 +
Example: https://gerrit.fd.io/r/#/c/19451/
 +
 +
=== Tag stable branch with release tag ===
 +
 +
Tag release notes patch on stable branch  (example for 1904):
 +
<pre>
 +
git tag 19.04.1-rc0 -m "JVPP version 19.04.1 (RC0)"
 +
</pre>
 +
 +
verify tag:
 +
<pre>
 +
git show 19.04.1-rc0
 +
</pre>
 +
 +
Push the tag to remote repository:
 +
<pre>
 +
git push origin 19.04.1-rc0
 +
</pre>
 +
 +
Verify the tag remotely https://gerrit.fd.io/r/#/admin/projects/jvpp,tags.
 +
Verify the build, artifacts and packages (should be rc0 .1 for current stable branch).

Latest revision as of 07:56, 9 May 2019

Jenkins

In jjb/jvpp/jvpp.yaml add a new ‘stream’ for your new YYMM (example: for stable/1904):

- '1904':
            branch: 'stable/1904’'
            repo-stream-part: 'stable.1904'

(example: https://gerrit.fd.io/r/#/c/18959/).

Cut branch

Create a new branch stable/YYMM (example: stable/1904) in the gerrit web UI against the point on master you wish to be cutting the branch (usually HEAD at the time your cutting).

https://gerrit.fd.io/r/#/admin/projects/jvpp,branches

Prepare initial commit for stable/YYMM branch

On stable/YYMM (example: stable/1904) prepare a commit which updates the .gitreview to reflect the correct branch.

Example: https://gerrit.fd.io/r/#/c/18957/

Tag initial commit on stable branch (example for stable/1904):

git tag 19.04-rc1 -m "JVPP version 19.04 (RC1)"

verify tag:

git show 19.04-rc1

Push the tag to remote repository:

git push origin 19.04-rc1

Verify tag remotely (https://gerrit.fd.io/r/#/admin/projects/jvpp,tags)

Update release notes for the stable branch

Update release notes in documentation based on Jira tickets.

Example: https://gerrit.fd.io/r/#/c/18965/

Verify correct artifact versions

After merge job for initial patch and release notes patch are finished, check if

  • RPMs with the correct versions were deployed at:

https://nexus.fd.io/content/repositories/fd.io.stable.YYMM.centos7/io/fd/jvpp/vpp-api-java/

Example: https://nexus.fd.io/content/repositories/fd.io.stable.1904.centos7/io/fd/jvpp/vpp-api-java/

  • DEBs (xenial/bionic) with the correct versions were deployed at

https://nexus.fd.io/content/repositories/fd.io.stable.YYMM.ubuntu.xenial.main/io/fd/jvpp/vpp-api-java/ https://nexus.fd.io/content/repositories/fd.io.stable.YYMM.ubuntu.bionic.main/io/fd/jvpp/vpp-api-java/

Example: https://nexus.fd.io/content/repositories/fd.io.stable.1904.ubuntu.xenial.main/io/fd/jvpp/vpp-api-java/ https://nexus.fd.io/content/repositories/fd.io.stable.1904.ubuntu.bionic.main/io/fd/jvpp/vpp-api-java/

  • JARs with the correct versions were deployed at:

after brach cut: https://nexus.fd.io/content/repositories/fd.io.snapshot/io/fd/jvpp/[path to artifact]/

after release in: https://nexus.fd.io/content/repositories/fd.io.release/io/fd/jvpp/[path to artifact]/

Example: https://nexus.fd.io/content/repositories/fd.io.snapshot/io/fd/jvpp/jvpp-core/19.04-SNAPSHOT/

Verify packages on Package cloud

https://packagecloud.io/app/fdio/YYMM/search?q=vpp-api-java

Example: https://packagecloud.io/app/fdio/1904/search?q=vpp-api-java

Update master branch

Create new project version in jira:

JVPP releases

On Master branch prepare initial commit for next release (example 1908)

- cherry pick release notes changes from last stable release
- update release notes documentation, add placeholder for next stable version.

Example: https://gerrit.fd.io/r/#/c/18958/

Tag master branch with new tag for next release cycle

Tag initial commit on master branch (example for 1908):

git tag 19.08-rc0 -m "JVPP version 19.08 (RC0)"

verify tag:

git show 19.08-rc0

Push the tag to remote repository:

git push origin 19.08-rc0

Verify correct artifact versions

After merge job for initial patch is finished, check if

  • RPMs with the correct versions were deployed at:

https://nexus.fd.io/content/repositories/fd.io.master.centos7/io/fd/jvpp/vpp-api-java/

  • DEBs (xenial/bionic) with the correct versions were deployed at

https://nexus.fd.io/content/repositories/fd.io.master.ubuntu.xenial.main/io/fd/jvpp/vpp-api-java/ https://nexus.fd.io/content/repositories/fd.io.master.ubuntu.bionic.main/io/fd/jvpp/vpp-api-java/

  • JARs with the correct versions were deployed at:

after brach cut: https://nexus.fd.io/content/repositories/fd.io.snapshot/io/fd/jvpp/[path to artifact]/

Example: https://nexus.fd.io/content/repositories/fd.io.snapshot/io/fd/jvpp/jvpp-core/19.08-SNAPSHOT/

Verify packages on Package cloud

https://packagecloud.io/app/fdio/master/search?q=vpp-api-java

JVPP release procedure

Prepare release notes patch

Prepare patch with updated release notes based on JVPP Jira issues planned for this release.(example 1904 release notes - https://wiki.fd.io/view/JVPP/Release_Plans/Release_Plan_19.04)

Example: https://gerrit.fd.io/r/#/c/18965/

After merge is done verify artifacts.

Tag stable branch with release tag

Tag release notes patch on stable branch (example for 1904):

git tag 19.04 -m "JVPP version 19.04"

verify tag:

git show 19.04

Push the tag to remote repository:

git push origin 19.04

Verify the tag remotely https://gerrit.fd.io/r/#/admin/projects/jvpp,tags. Once tagged successfully, start new build. Add comment "remerge" to release notes patch. Verify the build, artifacts and packages.

Ask helpdesk to publish artifacts and packages to release repos

Publish RPM and DEB packages

Nexus packages example for 1904:

Centos:

Ubuntu Bionic:

Ubuntu Xenial:

Package cloud example for 1904:

Centos:

Ubuntu Bionic:

Ubuntu Xenial:

Destination:


Publish JAR artifacts for maven release repo:

Prepare release notes .1 (RC0) patch

Prepare patch with updated release notes for next release cycle on stable branch.

Example: https://gerrit.fd.io/r/#/c/19451/

Tag stable branch with release tag

Tag release notes patch on stable branch (example for 1904):

git tag 19.04.1-rc0 -m "JVPP version 19.04.1 (RC0)"

verify tag:

git show 19.04.1-rc0

Push the tag to remote repository:

git push origin 19.04.1-rc0

Verify the tag remotely https://gerrit.fd.io/r/#/admin/projects/jvpp,tags. Verify the build, artifacts and packages (should be rc0 .1 for current stable branch).