Skip to content

Commit e6e3fbe

Browse files
committed
ci: Write full changelog between versions
1 parent f460a50 commit e6e3fbe

File tree

2 files changed

+42
-6
lines changed

2 files changed

+42
-6
lines changed

.ci/git-changelog.sh

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,39 @@ if [ "$#" -ne 2 ]; then
55
exit 1
66
fi
77

8-
echo "# Release $1" > CHANGELOG.md
9-
echo "" >> CHANGELOG.md
10-
git log --pretty=format:"%s ([%h]($2/commits/%h))" | sort >> CHANGELOG.md
8+
NEW_VERSION=$1
9+
10+
# Get the last release tag (reverse sort by date, limited to one, return only refname, if pattern matches a hardening tag)
11+
LATEST_RELEASE=$(git for-each-ref --sort=-creatordate --count=1 --format="%(refname)" refs/tags/release/*)
12+
13+
# Get extra short gitlog from laste release to current HEAD
14+
GIT_CHANGELOG=$(git log $LATEST_RELEASE..HEAD --format="- %s ([%h]($2/commits/%h))" | sort)
15+
16+
FEATURES=""
17+
FIXES=""
18+
OTHER=""
19+
20+
prefix=""
21+
while IFS= read -r line; do
22+
current_prefix=$(echo "$line" | sed -E 's/-\s*(.*?):\s.*/\1/g')
23+
if [ "$prefix" != "$current_prefix" ]; then
24+
if [ "feat" == "$current_prefix" ]; then
25+
FEATURES+="\n## 🚀 Features\n"
26+
elif [ "fix" == "$current_prefix" ]; then
27+
FIXES+="\n## 🐛 Fixes\n"
28+
else
29+
OTHER+="\n### $current_prefix\n"
30+
fi
31+
32+
prefix=$current_prefix
33+
fi
34+
if [ "feat" == "$prefix" ]; then
35+
FEATURES+="$line\n"
36+
elif [ "fix" == "$prefix" ]; then
37+
FIXES+="$line\n"
38+
else
39+
OTHER+="$line\n"
40+
fi
41+
done <<< "$GIT_CHANGELOG"
42+
43+
printf "# Release $NEW_VERSION\n$FEATURES$FIXES\n## 🛠️ Other Changes\n$OTHER" > CHANGELOG.md

.github/workflows/release.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,14 @@ jobs:
3131
- name: Build Linux x386
3232
run: GOOS=linux GOARCH=386 .ci/release.sh ${{secrets.PocketAppId}} ${{env.version}} pocket-cli-linux-386
3333

34-
- name: Build Mac
35-
run: GOOS=darwin GOARCH=amd64 .ci/release.sh ${{secrets.PocketAppId}} ${{env.version}} pocket-cli-mac
34+
- name: Build Mac Amd64
35+
run: GOOS=darwin GOARCH=amd64 .ci/release.sh ${{secrets.PocketAppId}} ${{env.version}} pocket-cli-mac-amd64
36+
37+
- name: Build Mac Apple Silicon (arm)
38+
run: GOOS=darwin GOARCH=arm64 .ci/release.sh ${{secrets.PocketAppId}} ${{env.version}} pocket-cli-mac-arm64
3639

3740
- name: Get release text
38-
run: echo "$(.ci/git-changelog.sh ${{env.version}} https://github.com/UnseenWizzard/pocket-cli)"
41+
run: .ci/git-changelog.sh ${{env.version}} https://github.com/UnseenWizzard/pocket-cli
3942

4043
- uses: ncipollo/release-action@v1
4144
with:

0 commit comments

Comments
 (0)