@@ -114,46 +114,20 @@ jobs:
114114 - name : Generate changelog (for stable releases)
115115 if : startsWith(github.ref, 'refs/tags/v')
116116 id : changelog
117+ uses : orhun/git-cliff-action@v4
118+ with :
119+ config : cliff.toml
120+ args : --latest --strip header
121+ env :
122+ OUTPUT : CHANGES.md
123+ GITHUB_REPO : ${{ github.repository }}
124+
125+ - name : Read changelog
126+ if : startsWith(github.ref, 'refs/tags/v')
127+ id : read_changelog
117128 run : |
118- CURRENT_TAG=${GITHUB_REF#refs/tags/}
119- PREVIOUS_TAG=$(git describe --tags --abbrev=0 "${CURRENT_TAG}^" 2>/dev/null || echo "")
120-
121- if [ -z "$PREVIOUS_TAG" ]; then
122- COMMITS=$(git log --pretty=format:"- %s" --reverse)
123- else
124- COMMITS=$(git log ${PREVIOUS_TAG}..${CURRENT_TAG} --pretty=format:"- %s" --reverse)
125- fi
126-
127- # Categorize commits (handle scoped commits like fix(ci): or chore(deps):)
128- FEATURES=$(echo "$COMMITS" | grep "^- feat" | sed 's/^- feat[^:]*: /- /' || true)
129- FIXES=$(echo "$COMMITS" | grep "^- fix" | sed 's/^- fix[^:]*: /- /' || true)
130- REFACTOR=$(echo "$COMMITS" | grep "^- refactor" | sed 's/^- refactor[^:]*: /- /' || true)
131- CHORES=$(echo "$COMMITS" | grep "^- chore" | sed 's/^- chore[^:]*: /- /' || true)
132- CI=$(echo "$COMMITS" | grep "^- ci" | sed 's/^- ci[^:]*: /- /' || true)
133- DOCS=$(echo "$COMMITS" | grep "^- docs" | sed 's/^- docs[^:]*: /- /' || true)
134-
135- CHANGELOG=""
136- if [ -n "$FEATURES" ]; then
137- CHANGELOG="${CHANGELOG}### Features\n${FEATURES}\n\n"
138- fi
139- if [ -n "$FIXES" ]; then
140- CHANGELOG="${CHANGELOG}### Bug Fixes\n${FIXES}\n\n"
141- fi
142- if [ -n "$REFACTOR" ]; then
143- CHANGELOG="${CHANGELOG}### Code Refactoring\n${REFACTOR}\n\n"
144- fi
145- if [ -n "$DOCS" ]; then
146- CHANGELOG="${CHANGELOG}### Documentation\n${DOCS}\n\n"
147- fi
148- if [ -n "$CI" ]; then
149- CHANGELOG="${CHANGELOG}### CI/CD\n${CI}\n\n"
150- fi
151- if [ -n "$CHORES" ]; then
152- CHANGELOG="${CHANGELOG}### Maintenance\n${CHORES}\n\n"
153- fi
154-
155129 echo "changelog<<EOF" >> "$GITHUB_OUTPUT"
156- echo -e "$CHANGELOG" >> "$GITHUB_OUTPUT"
130+ cat CHANGES.md >> "$GITHUB_OUTPUT"
157131 echo "EOF" >> "$GITHUB_OUTPUT"
158132
159133 - name : Update plist version
@@ -176,8 +150,8 @@ jobs:
176150 A reliable Alfred workflow for timezone lookups and time conversion.
177151
178152 ## What's Changed
179-
180- ${{ steps.changelog .outputs.changelog }}
153+
154+ ${{ steps.read_changelog .outputs.changelog }}
181155
182156 ## Installation
183157
0 commit comments