mirror of
https://github.com/containers/buildah.git
synced 2025-04-18 07:04:05 +03:00
82 lines
1.6 KiB
Bash
Executable File
82 lines
1.6 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Cut a buildah 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/^\(.*Version = \"\).*/\1${LOCAL_VERSION}\"/" define/types.go
|
|
}
|
|
|
|
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
|
|
|
|
echo "
|
|
## v${VERSION} (${DATE})
|
|
" >.CHANGELOG.md &&
|
|
git log --no-merges --format=' %s' "${LAST_TAG}..HEAD" >>.CHANGELOG.md &&
|
|
sed -i -e '/# Changelog/r .CHANGELOG.md' CHANGELOG.md &&
|
|
rm -f .CHANGELOG.md
|
|
}
|
|
|
|
release_commit()
|
|
{
|
|
write_go_version "${VERSION}" &&
|
|
write_changelog &&
|
|
git commit -asm "Bump to v${VERSION}
|
|
|
|
[NO TESTS NEEDED]
|
|
"
|
|
}
|
|
|
|
dev_version_commit()
|
|
{
|
|
write_go_version "${NEXT_VERSION}-dev" &&
|
|
git commit -asm "Bump to v${NEXT_VERSION}-dev
|
|
|
|
[NO TESTS NEEDED]
|
|
"
|
|
}
|
|
|
|
epoch_commit()
|
|
{
|
|
LOCAL_EPOCH="$1"
|
|
write_makefile_epoch "${LOCAL_EPOCH}" &&
|
|
git commit -asm 'Bump gitvalidation epoch
|
|
|
|
[NO TESTS NEEDED]
|
|
'
|
|
}
|
|
|
|
git fetch origin &&
|
|
git checkout -b "bump-${VERSION}" origin/main &&
|
|
EPOCH=$(git rev-parse HEAD) &&
|
|
release_commit &&
|
|
git tag -s -m "version ${VERSION}" "v${VERSION}" &&
|
|
dev_version_commit &&
|
|
epoch_commit "${EPOCH}"
|