mirror of
https://github.com/siderolabs/talos.git
synced 2025-08-20 14:11:11 +02:00
Instead of keeping a CHANGELOG for each release in the master branch, a single CHANGELOG should be used since it will move into release branches anyways. This prevents us from having to keep the files in sync across master and the release branch. This also adds better tooling for generating the CHANGELOG.md. Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
52 lines
1005 B
Bash
Executable File
52 lines
1005 B
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
function changelog {
|
|
if [ "$#" -eq 1 ]; then
|
|
git-chglog --output CHANGELOG.md -c ./hack/chglog/config.yml --tag-filter-pattern "^${1}" "${1}-alpha.1.."
|
|
elif [ "$#" -eq 0 ]; then
|
|
git-chglog --output CHANGELOG.md -c ./hack/chglog/config.yml
|
|
else
|
|
echo 1>&2 "Usage: $0 changelog [tag]"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
function cherry-pick {
|
|
if [ $# -ne 2 ]; then
|
|
echo 1>&2 "Usage: $0 cherry-pick <commit> <branch>"
|
|
exit 1
|
|
fi
|
|
|
|
git checkout $2
|
|
git fetch
|
|
git rebase upstream/$2
|
|
git cherry-pick -x $1
|
|
}
|
|
|
|
function commit {
|
|
if [ $# -ne 1 ]; then
|
|
echo 1>&2 "Usage: $0 commit <tag>"
|
|
exit 1
|
|
fi
|
|
|
|
git commit -s -m "chore: prepare release $1" -m "This is the official $1 release."
|
|
}
|
|
|
|
if declare -f "$1" > /dev/null
|
|
then
|
|
cmd="$1"
|
|
shift
|
|
$cmd "$@"
|
|
else
|
|
cat <<EOF
|
|
Usage:
|
|
commit: Create the official release commit message.
|
|
cherry-pick: Cherry-pick a commit into a release branch.
|
|
changelog: Update the specified CHANGELOG.
|
|
EOF
|
|
|
|
exit 1
|
|
fi
|