99 lines
2.1 KiB
Bash
Executable File
99 lines
2.1 KiB
Bash
Executable File
#!/bin/sh
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
#
|
|
# Finalize a release (possibly prepared with AI agent assistance)
|
|
# Amends the version bump commit to add Signed-off-by, then creates a
|
|
# signed annotated tag from the drafted tag message.
|
|
|
|
set -e
|
|
|
|
usage() {
|
|
echo "Usage: $0 <tag-message-file>" >&2
|
|
echo "" >&2
|
|
echo "Run this from the repository root with VERSION.txt updated" >&2
|
|
echo "and a draft tag message in given file." >&2
|
|
exit 1
|
|
}
|
|
|
|
TAG_MSG_FILE="$1"
|
|
if [ -z "$TAG_MSG_FILE" ] || [ ! -f "$TAG_MSG_FILE" ]; then
|
|
usage
|
|
fi
|
|
|
|
VERSION=$(cat VERSION.txt)
|
|
TAG="v${VERSION}"
|
|
|
|
if git rev-parse "$TAG" >/dev/null 2>&1; then
|
|
echo "Error: tag $TAG already exists" >&2
|
|
exit 1
|
|
fi
|
|
|
|
HEAD_SUBJECT=$(git log -1 --format=%s)
|
|
EXPECTED="Bump version to $TAG"
|
|
if [ "$HEAD_SUBJECT" != "$EXPECTED" ]; then
|
|
echo "Error: HEAD commit subject is:" >&2
|
|
echo " $HEAD_SUBJECT" >&2
|
|
echo "Expected:" >&2
|
|
echo " $EXPECTED" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "Version: $VERSION"
|
|
echo "Tag: $TAG"
|
|
echo ""
|
|
echo "--- Tag message ---"
|
|
cat "$TAG_MSG_FILE"
|
|
echo "--- End tag message ---"
|
|
echo ""
|
|
|
|
printf "Proceed? [y/N] "
|
|
read answer
|
|
case "$answer" in
|
|
y|Y) ;;
|
|
*) echo "Aborted."; exit 1 ;;
|
|
esac
|
|
|
|
git commit --amend -s --no-edit
|
|
git tag -s "$TAG" -F "$TAG_MSG_FILE"
|
|
|
|
echo ""
|
|
echo "Created signed tag $TAG."
|
|
echo "Review with: git show $TAG"
|
|
echo ""
|
|
|
|
git push origin main "$TAG"
|
|
git push github main "$TAG"
|
|
git push gitlab main "$TAG"
|
|
|
|
SCRIPTDIR=$(dirname "$0")
|
|
|
|
printf "Upload to kernel.org via kup? [y/N] "
|
|
read answer
|
|
case "$answer" in
|
|
y|Y) "$SCRIPTDIR/kup-dtc" "$VERSION" ;;
|
|
*) echo "Skipping kup upload." ;;
|
|
esac
|
|
|
|
TAG_BODY=$(git tag -l --format='%(contents:body)' "$TAG")
|
|
|
|
ANNOUNCE="announce-${TAG}.txt"
|
|
cat > "$ANNOUNCE" <<MAIL
|
|
To: devicetree-compiler@vger.kernel.org
|
|
Subject: DTC $VERSION released
|
|
|
|
DTC $VERSION is now available.
|
|
|
|
Git tree:
|
|
https://git.kernel.org/pub/scm/utils/dtc/dtc.git
|
|
|
|
Tagged release ($TAG):
|
|
https://git.kernel.org/pub/scm/utils/dtc/dtc.git/tag/?h=$TAG
|
|
|
|
Tarball:
|
|
https://kernel.org/pub/software/utils/dtc/dtc-${VERSION}.tar.gz
|
|
|
|
$TAG_BODY
|
|
MAIL
|
|
|
|
echo "Announcement draft written to $ANNOUNCE"
|