Skip to content

Commit

Permalink
docs: Document release process - tools.
Browse files Browse the repository at this point in the history
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
jcvenegas committed Oct 2, 2018
1 parent c273c95 commit 9c9aa22
Showing 1 changed file with 112 additions and 0 deletions.
112 changes: 112 additions & 0 deletions release/release.md
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!


0 comments on commit 9c9aa22

Please sign in to comment.