Skip to content

Commit a1a0c9a

Browse files
committed
Assisted release script
1 parent 430a17b commit a1a0c9a

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

ci/create_release.sh

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#!/usr/bin/env bash
2+
3+
set -euo pipefail
4+
5+
die() {
6+
>&2 echo "$@"
7+
exit 1
8+
}
9+
10+
[[ -n ${1+x} ]] || die "No tag specified"
11+
12+
# Check if the working tree is clean
13+
cd "$(git rev-parse --show-toplevel)"
14+
if ! git diff --quiet HEAD --; then
15+
echo "Your working tree is not clean!"
16+
echo "Please commit your changes before continuing."
17+
exit 1
18+
fi
19+
20+
echo "Updating changelog"
21+
TMPFILE=$(mktemp)
22+
cat >> $TMPFILE << EOF
23+
$(date -I) $(git config user.name)
24+
25+
- Release $1
26+
27+
EOF
28+
GIT_TAG=$(git describe --abbrev=0 --tags)
29+
git log --date=short --pretty=format:'%ad %an%n%n - %s%n' $GIT_TAG.. >> $TMPFILE
30+
echo >> $TMPFILE
31+
cat doc/generic/pgf/ChangeLog >> $TMPFILE
32+
mv $TMPFILE doc/generic/pgf/ChangeLog
33+
34+
echo "Updating release notes"
35+
echo -n "Launch ${EDITOR:-vim} doc/generic/pgf/RELEASE_NOTES.md? [ENTER]"
36+
read
37+
${EDITOR:-vim} doc/generic/pgf/RELEASE_NOTES.md
38+
39+
# Tagging release
40+
echo -n "I'm about to tag release '$1'. Continue? [ENTER]"
41+
read
42+
43+
git add doc/generic/pgf/ChangeLog
44+
git add doc/generic/pgf/RELEASE_NOTES.md
45+
git commit -m "Release $1"
46+
git tag "$1"

0 commit comments

Comments
 (0)