diff options
author | Matthew Heon <matthew.heon@gmail.com> | 2018-06-01 09:40:48 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-01 09:40:48 -0400 |
commit | ff3b46e769bc9a064ee8f45b9dbff8795d94bb7a (patch) | |
tree | 87f8ea74e0728a43e7331058a0ce62d4eae10d6f /hack/release.sh | |
parent | 8f14f966be628fb3e0d67f95f601a4a44de9a483 (diff) | |
parent | 8405ff9baa2c0ce412d5a1ff6cad7e327ade0439 (diff) | |
download | podman-ff3b46e769bc9a064ee8f45b9dbff8795d94bb7a.tar.gz podman-ff3b46e769bc9a064ee8f45b9dbff8795d94bb7a.tar.bz2 podman-ff3b46e769bc9a064ee8f45b9dbff8795d94bb7a.zip |
Merge pull request #867 from wking/release-script
hack/release.sh: Add a release script
Diffstat (limited to 'hack/release.sh')
-rwxr-xr-x | hack/release.sh | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/hack/release.sh b/hack/release.sh new file mode 100755 index 000000000..01d2e81a9 --- /dev/null +++ b/hack/release.sh @@ -0,0 +1,80 @@ +#!/bin/sh +# +# Cut a libpod release. Usage: +# +# $ hack/release.sh <version> <next-version> +# +# For example: +# +# $ hack/release.sh 1.2.3 1.3.0 +# +# for "I'm cutting 1.2.3, and want to use 1.3.0-dev for future work". + +VERSION="$1" +NEXT_VERSION="$2" +DATE=$(date '+%Y-%m-%d') +LAST_TAG=$(git describe --tags --abbrev=0) + +write_go_version() +{ + LOCAL_VERSION="$1" + sed -i "s/^\(const Version = \"\).*/\1${LOCAL_VERSION}\"/" version/version.go +} + +write_python_version() +{ + LOCAL_VERSION="$1" + sed -i "s/^\( *version='*\).*/\1${LOCAL_VERSION}'/" contrib/python/setup.py +} + +write_spec_version() +{ + LOCAL_VERSION="$1" + sed -i "s/^\(Version: *\).*/\1${LOCAL_VERSION}/" contrib/spec/podman.spec.in +} + +write_makefile_epoch() +{ + LOCAL_EPOCH="$1" + sed -i "s/^\(EPOCH_TEST_COMMIT ?= \).*/\1${LOCAL_EPOCH}/" Makefile +} + +write_changelog() +{ + echo "- Changelog for v${VERSION} (${DATE})" >.changelog.txt && + git log --no-merges --format=' * %s' "${LAST_TAG}..HEAD" >>.changelog.txt && + echo >>.changelog.txt && + cat changelog.txt >>.changelog.txt && + mv -f .changelog.txt changelog.txt +} + +release_commit() +{ + write_go_version "${VERSION}" && + write_python_version "${VERSION}" && + write_changelog && + git commit -asm "Bump to v${VERSION}" +} + +dev_version_commit() +{ + write_go_version "${NEXT_VERSION}-dev" && + write_python_version "${NEXT_VERSION}" && + write_spec_version "${VERSION}" && + git commit -asm "Bump to v${NEXT_VERSION}-dev" +} + +epoch_commit() +{ + LOCAL_EPOCH="$1" + write_makefile_epoch "${LOCAL_EPOCH}" && + git commit -asm 'Bump gitvalidation epoch' +} + +git fetch origin && +git checkout -b "bump-${VERSION}" origin/master && +EPOCH=$(git rev-parse HEAD) && +release_commit && +git tag -s -m "version ${VERSION}" "v${VERSION}" && +dev_version_commit && +epoch_commit "${EPOCH}" |