forked from kata-containers/packaging
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: Document release process - tools.
Document flow to create a release based in the tools from this repository. Fixes: kata-containers#207 Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
- Loading branch information
Showing
1 changed file
with
112 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
# How to do a Kata Containers Release | ||
|
||
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. | ||
|
||
## Requeriments | ||
- Go (https://golang.org/doc/install#) | ||
|
||
- hub (https://github.com/github/hub) | ||
If you are using github 2FA, configure hub manually creating a file `~/.config/hub` | ||
```yaml | ||
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) * | ||
|
||
|
||
## Get packaging kata repository. | ||
```bash | ||
go get -d github.com/kata-containers/packaging | ||
``` | ||
|
||
# Start release process | ||
```bash | ||
cd ${GOPATH}/src/github.com/kata-containers/packaging | ||
#make sure you are up-to-date. | ||
git pull | ||
``` | ||
1. Bump repositories | ||
```bash | ||
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. | ||
|
||
2. Create Github tags | ||
|
||
After all the PRs from the previous step were done, its time to create github tags. | ||
|
||
```bash | ||
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. | ||
|
||
4. Create Kata Containers Image and upload to Github. | ||
```bash | ||
cd ${GOPATH}/src/github.com/kata-containers/packaging/release | ||
./publish-kata-image.sh -p ${NEW_VERSION} | ||
``` | ||
|
||
5. Create Kata static binaries tarball and upload to github. | ||
```bash | ||
cd ${GOPATH}/src/github.com/kata-containers/packaging/release | ||
./kata-deploy-binaries.sh -p ${NEW_VERSION} | ||
``` | ||
|
||
6. Create Kata packages. | ||
|
||
```bash | ||
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} | ||
``` | ||
|
||
7. Create release notes. | ||
```bash | ||
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. | ||
|
||
9. Announce release. | ||
|
||
Publish in Slack and ML that new release is ready. | ||
|
||
10. Finish | ||
You did it! | ||
|
||
|