Hi if you are reading this document you may also want to create a kata Containers Release.
The Kata Containers Release Process is defined in the follwoing documents.
https://github.com/kata-containers/documentation/blob/master/Releases.md
To simply the process of read each release we have created a checklist for it.
https://github.com/kata-containers/documentation/blob/master/Release-Checklist.md
In order to simplify the process of do the Release Checklist we have semi-automated most of the process.
So lets get started.
-
hub (https://github.com/github/hub) If you are using github 2FA, configure hub manually creating a file
~/.config/hub
github.com: - user: YOUR_USER oauth_token: TOKEN protocol: https
-
OBS account with permissions on /home:katacontainers (https://build.opensuse.org/project/subprojects/home:katacontainers)
-
Github permissions to push tags an creates Releases in Kata repositories.
-
GPG configured to sign git tags. https://help.github.com/articles/generating-a-new-gpg-key/
-
Your github should be configured 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 alternative you can configure hub to do push and forks with https,
git config --global hub.protocol https
(Not tested yet) *
- As alternative you can configure hub to do push and forks with https,
-
go get -d github.com/kata-containers/packaging
cd ${GOPATH}/src/github.com/kata-containers/packaging
#make sure you are up-to-date.
git pull
- Bump repositories
cd ${GOPATH}/src/github.com/kata-containers/packaging/release
export NEW_VERSION=X.Y.Z
export BRANCH="master"
./update-repository-version.sh -p ksm-throttler "$NEW_VERSION" "$BRANCH"
./update-repository-version.sh -p proxy "$NEW_VERSION" "$BRANCH"
./update-repository-version.sh -p shim "$NEW_VERSION" "$BRANCH"
./update-repository-version.sh -p runtime "$NEW_VERSION" "$BRANCH"
./update-repository-version.sh -p osbuilder "$NEW_VERSION" "$BRANCH"
./update-repository-version.sh -p agent "$NEW_VERSION" "$BRANCH"
The commands from above will create a github pull request in the Kata projects. Work with the Kata approvers to verify that the CI works and the PR are merged.
- Create Github tags
After all the PRs from the previous step were done, its time to create github tags.
cd ${GOPATH}/src/github.com/kata-containers/packaging/release
./tag_repos.sh -p -b "$BRANCH" tag
This wil create tags for all the Kata Repos.
- Create Kata Containers Image and upload to Github.
cd ${GOPATH}/src/github.com/kata-containers/packaging/release
./publish-kata-image.sh -p ${NEW_VERSION}
- Create Kata static binaries tarball and upload to github.
cd ${GOPATH}/src/github.com/kata-containers/packaging/release
./kata-deploy-binaries.sh -p ${NEW_VERSION}
- Create Kata packages.
Sometimes the obs service is not stable and the connection got eof or ssl errors. Modify packaging/obs-packaging/scripts/obs-pkgs.sh
to skip successful packages and repeat the same ./build_from_docker.sh
command.
cd ${GOPATH}/src/github.com/kata-containers/packaging/obs-packaging
#./create-pkg-branch.sh ${BRANCH}
./gen_versions_txt.sh ${BRANCH}
PUSH=1 OBS_SUBPROJECT="releases:$(uname -m):${BRANCH}" ./build_from_docker.sh ${NEW_VERSION}
- Create release notes.
cd ${GOPATH}/src/github.com/kata-containers/packaging/release
./runtime-release-notes.sh 1.2.0 1.2.1 > notes.md
Add release notes in github runtime.
- Announce release.
Publish in Slack and ML that new release is ready.
- Finish You did it!