8
8
# 3. The CHANGELOG.md file
9
9
# 4. The tag
10
10
11
+ function get_changes() {
12
+ local currentTag previousTag
13
+ previousTag=$( git describe --abbrev=0 --tags " $( git describe --abbrev=0) " ^)
14
+ currentTag=$( git describe --abbrev=0)
15
+ changes=$( git log --pretty=oneline --pretty=format:' [`%h`](https://github.com/cbrnrd/maliketh/commit/%h) - %s' --abbrev-commit " $previousTag ...$currentTag " | grep -v " Upgrade" )
16
+ cat << EOF
17
+ ## $currentTag
18
+
19
+ $changes
20
+
21
+ View diff [\` $previousTag ...$currentTag \` ](https://github.com/cbrnrd/maliketh/compare/$previousTag ...$currentTag )
22
+
23
+ EOF
24
+ }
25
+
11
26
function get_changelog() {
12
- local currentTag previousTag prevChangelogContents
13
- currentTag=$( git describe --abbrev=0 --tags " $( git describe --abbrev=0) " ^)
14
- previousTag=$( git describe --abbrev=0)
27
+ local prevChangelogContents
15
28
prevChangelogContents=$( cat ./CHANGELOG.md)
16
29
17
- {
18
- echo " ## $currentTag " ;
19
- echo " " ;
20
- git log --pretty=oneline --pretty=format:' `%h` - %s' --abbrev-commit " $currentTag ...$previousTag " | grep -v " Upgrade" ;
21
- echo " " ;
22
- } > CHANGELOG.md
30
+ get_changes > CHANGELOG.md
23
31
echo " $prevChangelogContents " >> CHANGELOG.md
24
32
}
25
33
26
-
27
34
# Print usage if -h or no args
28
35
if [[ $1 == " -h" || $# -eq 0 ]]; then
29
36
echo " Usage: ./create_release.sh <new_version>"
@@ -51,17 +58,12 @@ cd server && poetry version $NEW_VERSION && cd ..
51
58
# Update the version number in client/pyproject.toml
52
59
cd client && poetry version $NEW_VERSION && cd ..
53
60
54
- # Commit the changes
55
61
git add server/pyproject.toml client/pyproject.toml
56
62
git commit -m " Bump version to v$NEW_VERSION "
57
63
58
64
# Create a new tag
59
65
git tag -a v$NEW_VERSION
60
66
61
- # Push the changes
62
- git push
63
- git push origin v$NEW_VERSION
64
-
65
67
# Prompt for changelog autogeneration
66
68
read -p " Would you like to autogenerate the changelog? (y/n) " AUTOGEN
67
69
75
77
echo " $prevChangelogContents " >> CHANGELOG.md
76
78
fi
77
79
80
+ # Commit the changes
81
+ git add CHANGELOG.md
82
+ git commit -m " Update changelog for v$NEW_VERSION "
83
+
84
+ # Push the changes
85
+ git push
86
+ git push origin v$NEW_VERSION
87
+
78
88
read -p " Would you like to add a custom release title? (y/n) " CUSTOM_TITLE
79
89
80
90
if [[ $CUSTOM_TITLE == " y" ]]; then
81
91
read -p " Enter the release title: " TITLE
82
- gh release create v$NEW_VERSION --notes-from-tag --title " $TITLE "
92
+ get_changes | gh release create v$NEW_VERSION -F - --title " $TITLE "
83
93
else
84
- gh release create v$NEW_VERSION --notes-from-tag
94
+ get_changes | gh release create v$NEW_VERSION -F -
85
95
fi
86
96
87
97
echo " Done!"
0 commit comments