Skip to content

Latest commit

 

History

History
114 lines (80 loc) · 6.41 KB

release.md

File metadata and controls

114 lines (80 loc) · 6.41 KB

Releasing API Mediation Layer

Guidelines

Releasing API ML for a Zowe Release

When there is a new minor release of Zowe, there should be a new patch release of the API ML from the master branch and a new minor snapshot version created. This is done in two steps:

  1. Release the binaries with the binary specific release workflow.

    • release_version is the version that will be released. This should be a new patch version. For example, if master is currently on version 1.27.1, release_version would be 1.27.2.
    • new_version should be a SNAPSHOT version with a new minor version. For example, if master is currently on version 1.27.1, new_version would be 1.28.0-SNAPSHOT. If 1.28.0-SNAPSHOT already exists due to previous releases, the patch version should be incremented, in this example to 1.28.1-SNAPSHOT.
  2. Release the images with the image specific release workflow.

    • release_version is the version that will be released. This should be the same value as used in step i.

After this release is finished the new version must be added to the release candidate manifest.

The following sections of the manifest need to have their version tag updated to the newly released version of the API ML (the value used in release_version):

  • binaryDependencies.org.zowe.apiml.sdk.* components
  • API ML components under imageDependencies:
    • api-catalog
    • caching
    • discovery
    • gateway
  • api-layer repository under sourceDependencies

GitHub actions

For some releases there are two workflows, one to release binaries and one to release images. This is because Marist is used to build the images and is unstable, causing failures that shouldn't impact the binary release.

There are also workflows that publish test builds.

Commands

The commands below are listed as a reference. Use GitHub Actions to execute them. The following commands are relevant only for Java artifacts.

Release SNAPSHOT artifacts

./gradlew publishAllVersions

Release final artifacts

./gradlew release -Prelease.useAutomaticVersion=true # new patch
./gradlew release -Prelease.useAutomaticVersion=true -Prelease.scope=patch # new patch
./gradlew release -Prelease.useAutomaticVersion=true -Prelease.scope=minor # new minor
./gradlew release -Prelease.useAutomaticVersion=true -Prelease.scope=major # new major

Release artifacts with a custom version

./gradlew release -Prelease.useAutomaticVersion=true -Prelease.releaseVersion=0.0.0 -Prelease.newVersion=1.1.0-SNAPSHOT

Properties

  • zowe.deploy.username and zowe.deploy.password - credentials to Zowe Artifactory

You can set properties in two ways:

  • on the command-line: -Pzowe.deploy.username=$USERNAME -Pzowe.deploy.password=$PASSWORD
  • in ~/.gradle/gradle.properties

Warning! Do not commit property changes to the Git repository. This is confidential information.

Properties are stored in GitHub Secrets.

Update changelog

You can get commit messages with the tool:

npm install -g conventional-changelog-cli

Command to display commit messages for a specified number of releases:

conventional-changelog -r <number_of_releases>

More information about the tool:

https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-cli