This document lists the tasks required to create a Kata Release.
-
OBS account with permissions on
/home:katacontainers
-
GitHub permissions to push tags and create releases in Kata repositories.
-
GPG configured to sign git tags. https://help.github.com/articles/generating-a-new-gpg-key/
-
You should configure your GitHub to use your ssh keys (to push to branches). See https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/.
- As an alternative, configure hub to push and fork with HTTPS,
git config --global hub.protocol https
(Not tested yet) *
- As an alternative, configure hub to push and fork with HTTPS,
-
We have set up a Jenkins job to bump the version in the
VERSION
file in all Kata repositories. Go to the Jenkins bump-job page to trigger a new job. -
Start a new job with variables for the job passed as:
BRANCH=<the-branch-you-want-to-bump>
NEW_VERSION=<the-new-kata-version>
For example, in the case where you want to make a patch release
1.10.2
, the variableNEW_VERSION
should be1.10.2
andBRANCH
should point tostable-1.10
. In case of an alpha or release candidate release,BRANCH
should point tomaster
branch.
Alternatively, you can also bump the repositories using a script in the Kata packaging repo
$ cd ${GOPATH}/src/github.com/kata-containers/packaging/release
$ export NEW_VERSION=<the-new-kata-version>
$ export BRANCH=<the-branch-you-want-to-bump>
$ ./update-repository-version.sh -p "$NEW_VERSION" "$BRANCH"
- The above step will create a GitHub pull request in the Kata projects. Trigger the CI using
/test
command on each bump Pull request. - Check any failures and fix if needed.
- Work with the Kata approvers to verify that the CI works and the pull requests are merged.
Once all the pull requests to bump versions in all Kata repositories are merged, tag all the repositories as shown below.
$ cd ${GOPATH}/src/github.com/kata-containers/packaging/release
$ git checkout <kata-branch-to-release>
$ git pull
$ ./tag_repos.sh -p -b "$BRANCH" tag
We make use of GitHub actions in this file in the kata-containers/kata-containers
repository to build and upload release artifacts. This action is auto triggered with the above step when a new tag is pushed to the kata-containers/kata-conatiners
repository.
Check the actions status page to verify all steps in the actions workflow have completed successfully. On success, a static tarball containing Kata release artifacts will be uploaded to the Release page.
-
We have set up an Azure Pipelines job to trigger generation of Kata packages in OBS. Go to the Azure Pipelines job that creates OBS packages.
-
Click on "Create release" (blue button, at top right corner). It should prompt you for variables to be passed to the release job. They should look like:
BRANCH="the-kata-branch-that-is-release" BUILD_HEAD=false OBS_BRANCH="the-kata-branch-that-is-release"
Note: If the release is
Alpha
,Beta
, orRC
(that is part of amaster
release), please useOBS_BRANCH=master
.The above step shall create OBS packages for Kata for various distributions that Kata supports and test them as well.
-
Verify that the packages have built successfully by checking the Kata OBS project page.
-
Make sure packages work correctly. This can be done manually or via the package testing pipeline. You have to make sure the packages are already published by OBS before this step. It should prompt you for variables to be passed to the pipeline:
BRANCH="<kata-branch-to-release>" NEW_VERSION=<the-version-you-expect-to-be-packaged|latest>
Note:
latest
will verify that a package provides the latest Kata tag in that branch.
We have a script in place in the packaging repository to create release notes that include a short-log of the commits across Kata components.
Run the script as shown below:
$ cd ${GOPATH}/src/github.com/kata-containers/packaging/release
# Note: OLD_VERSION is where the script should start to get changes.
$ ./runtime-release-notes.sh ${OLD_VERSION} ${NEW_VERSION} > notes.md
# Edit the `notes.md` file to review and make any changes to the release notes.
# Add the release notes in GitHub runtime.
$ hub -C "${GOPATH}/src/github.com/kata-containers/runtime" release edit -F notes.md "${NEW_VERSION}"
Publish in Slack and Kata mailing list that new release is ready.