-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathdo-release.sh
executable file
·54 lines (45 loc) · 1.42 KB
/
do-release.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/bin/bash
set -e
if [ "$#" -ne 1 ]; then
echo "usage: $0 <release>" >&2
exit 1
fi
newrel="$1"
today="$(date --rfc-3339=date)"
if ! git diff --exit-code HEAD; then
echo >&2
echo "$0: Aborted due to uncommitted changes." >&2
exit 1
fi
# First, update versionadded, etc. directives
# -------------------------------------------
candidates="$(rg --files-with-matches ":: UNRELEASED" -g '!do-release.sh')" || true
if [ -n "$candidates" ]; then
sed -i "s/:: UNRELEASED/:: $newrel/g" $candidates
git commit -s -m "docs: Update version references" -- $candidates
fi
# Update CHANGELOG.md, __about__.py, and README.md
# ------------------------------------------------
sed -i -f - ./CHANGELOG.md <<EOF
/^## \[Unreleased\]$/a \\
\\
\\
## [$newrel] - $today
s@^\[Unreleased\]: \\(.*\\)/v\\(.*\\)\.\.\.\\(.*\\)\$@\
[Unreleased]: \1/v$newrel...\3\\
[$newrel]: https://github.com/Rahix/tbot/compare/v\2...v$newrel\
@
EOF
# sed -i -f - ./tbot/__about__.py <<EOF
# /^__version__/c \\
# __version__ = "$newrel"
# EOF
sed -i -f - ./README.md <<EOF
s/^\\(pip3 install --user -U .*@\\).*$/\1v$newrel/
EOF
sed -i -f - ./Documentation/installation.rst <<EOF
s/\\(pip3 install -U --user .*@\\).*$/\1v$newrel/
EOF
# git commit -s -m "Prepare $newrel" -- ./CHANGELOG.md ./tbot/__about__.py README.md
git commit -s -m "Prepare $newrel" -- CHANGELOG.md README.md Documentation/installation.rst
git tag -s "v$newrel" -m "Version $newrel"