Files
matchbox/Documentation/dev/release.md
2017-01-17 00:58:03 -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.4.2

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 build
make release

Verify the reported version.

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

ACI

Build the rkt ACI on a Linux host with acbuild,

./build-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.