Files
matchbox/Documentation/dev/release.md
2017-02-24 17:17:41 -08:00

2.3 KiB

Release Guide

This guide covers releasing new versions of matchbox.

Version

Create a release commit which updates old version references.

$ export VERSION=v0.5.0

Tag

Tag, sign the release version, and push it to Github.

$ git tag -s vX.Y.Z -m 'vX.Y.Z'
$ git push origin --tags
$ git push origin master

Images

Travis CI will build the Docker image and push it to Quay.io when the tag is pushed to master. Verify the new image and version.

$ sudo docker run quay.io/coreos/matchbox:$VERSION -version
$ sudo rkt run --no-store quay.io/coreos/matchbox:$VERSION -- -version

Github Release

Publish the release on Github with release notes.

Tarballs

Build the release tarballs.

$ make release

Verify the reported version.

./_output/matchbox-v0.5.0-linux-amd64/matchbox -version

ACI

Build the rkt ACI on a Linux host with acbuild,

$ make aci

Check that the listed version is correct/clean.

$ sudo rkt --insecure-options=image run matchbox.aci -- -version

Add the ACI to output for signing.

$ mv matchbox.aci _output/matchbox-$VERSION-linux-amd64.aci

Signing

Sign the release tarballs and ACI with a CoreOS App Signing Key subkey.

$ cd _output
$ gpg2 -a --default-key FC8A365E --detach-sign matchbox-$VERSION-linux-amd64.aci
$ gpg2 -a --default-key FC8A365E --detach-sign matchbox-$VERSION-linux-amd64.tar.gz
$ gpg2 -a --default-key FC8A365E --detach-sign matchbox-$VERSION-darwin-amd64.tar.gz
$ gpg2 -a --default-key FC8A365E --detach-sign matchbox-$VERSION-linux-arm.tar.gz
$ gpg2 -a --default-key FC8A365E --detach-sign matchbox-$VERSION-linux-arm64.tar.gz

Verify the signatures.

$ gpg2 --verify matchbox-$VERSION-linux-amd64.aci.asc matchbox-$VERSION-linux-amd64.aci
$ gpg2 --verify matchbox-$VERSION-linux-amd64.tar.gz.asc matchbox-$VERSION-linux-amd64.tar.gz
$ gpg2 --verify matchbox-$VERSION-darwin-amd64.tar.gz.asc matchbox-$VERSION-darwin-amd64.tar.gz
$ gpg2 --verify matchbox-$VERSION-linux-arm.tar.gz.asc matchbox-$VERSION-linux-arm.tar.gz
$ gpg2 --verify matchbox-$VERSION-linux-arm64.tar.gz.asc matchbox-$VERSION-linux-arm64.tar.gz

Publish

Upload the signed tarball(s) and ACI with the Github release. Promote the release from a pre-release to an official release.