This is the documentation for etcd2 releases. Read etcd3 doc for etcd3 releases.
The guide talks about how to release a new version of etcd.
The procedure includes some manual steps for sanity checking but it can probably be further scripted. Please keep this document up-to-date if you want to make changes to the release process.
Set desired version as environment variable for following steps. Here is an example to release 2.1.3:
export VERSION=v2.1.3 export PREV_VERSION=v2.1.2
All releases version numbers follow the format of semantic versioning 2.0.0.
[GH XXXX]
at the head of change line to reference Pull Request that introduces the change. Moreover, add a link on it to jump to the Pull Request.${VERSION}
.git tag -s ${VERSION}
.git show tags/$VERSION
.git push origin tags/$VERSION
. This assumes origin
corresponds to “https://github.com/coreos/etcd”.acbuild
is available.docker
is available.Run release script in root directory:
./scripts/release.sh ${VERSION}
It generates all release binaries and images under directory ./release.
Choose appropriate private key to sign the generated binaries and images.
The following commands are used for public release sign:
cd release # personal GPG is okay for now for i in etcd-*{.zip,.tar.gz}; do gpg --sign ${i}; done # use `CoreOS ACI Builder <release@coreos.com>` secret key for aci in etcd-${VERSION}.*.aci; do gpg -u 88182190 -a --output ${aci}.asc --detach-sig ${aci}; done
docker login quay.io docker push quay.io/coreos/etcd:${VERSION} docker push quay.io/coreos/etcd:${VERSION}-${arch}
latest
tag to the new image on quay.io if this is a stable release.git log ...${PREV_VERSION} --pretty=format:"%an" | sort | uniq | tr '\n' ',' | sed -e 's#,#, #g' -e 's#, $##'
git push origin ${VERSION_MAJOR}.${VERSION_MINOR}
if this is a major stable release. This assumes origin
corresponds to “https://github.com/coreos/etcd”.${VERSION}+git
.