72
72
flutter-version : 3.24.1
73
73
- run : |
74
74
sudo apt-get update -y
75
- sudo apt-get install -y ninja-build libgtk-3-dev
75
+ sudo apt-get install -y ninja-build libgtk-3-dev webkit2gtk-4.1
76
76
- run : flutter pub get
77
77
- run : flutter build linux
78
78
- name : Archive app
86
86
with :
87
87
files : build/linux/x64/release/bundle/Dantotsu_Linux_${{github.ref_name}}.zip
88
88
build_ios_and_macos :
89
- runs-on : macos-latest
89
+ runs-on : macos-13
90
90
permissions :
91
91
contents : write
92
92
pull-requests : write
@@ -177,4 +177,118 @@ jobs:
177
177
-X POST \
178
178
-d "{\"content\": \"$MESSAGE\"}" \
179
179
$DISCORD_WEBHOOK_URL
180
-
180
+
181
+ generate-changelog :
182
+ runs-on : ubuntu-latest
183
+ needs : [build_android,build_windows,build_linux,build_ios_and_macos]
184
+ steps :
185
+ - name : Checkout Code
186
+ uses : actions/checkout@v4
187
+ with :
188
+ fetch-depth : 0
189
+
190
+ # Clear existing CHANGELOG.md
191
+ - name : Clear CHANGELOG.md
192
+ run : |
193
+ echo ""> CHANGELOG.md
194
+ echo "" >> CHANGELOG.md
195
+
196
+ - name : Get previous tag
197
+ id : get_prev_tag
198
+ run : |
199
+ echo "Getting the previous tag..."
200
+ PREV_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "")
201
+ if [ -z "$PREV_TAG" ]; then
202
+ PREV_TAG=$(git rev-list --max-parents=0 HEAD)
203
+ fi
204
+ echo "prev_tag=$PREV_TAG" >> $GITHUB_ENV
205
+
206
+ - name : Get commit messages between tags
207
+ id : get_commits
208
+ run : |
209
+ COMMITS=$(git log ${{ env.prev_tag }}..HEAD --pretty=format:'%h %s' | tr '\n' '|')
210
+ echo "commits=$COMMITS" >> $GITHUB_ENV
211
+
212
+ - name : Categorize commits
213
+ id : categorize
214
+ run : |
215
+ echo "Categorizing commits..."
216
+ FEATURES=""
217
+ BUG_FIXES=""
218
+ REFACTORS=""
219
+ STYLE_CHANGES=""
220
+ PERFORMANCE=""
221
+ CHORES=""
222
+ REPO_URL="https://github.com/${{ github.repository }}"
223
+
224
+ IFS='|' read -ra COMMIT_LIST <<< "${{ env.commits }}"
225
+ echo "Commit list : ${COMMIT_LIST[@]}"
226
+ for LINE in "${COMMIT_LIST[@]}"; do
227
+ HASH=$(echo "$LINE" | awk '{print $1}')
228
+ MESSAGE=$(echo "$LINE" | cut -d' ' -f2-)
229
+ LINK="[$HASH]($REPO_URL/commit/$HASH)"
230
+
231
+ FORMATTED_COMMIT="* $LINK : $MESSAGE"
232
+ echo "Processing commit : $FORMATTED_COMMIT"
233
+ if [[ $MESSAGE == feat* ]]; then
234
+ FEATURES+="$FORMATTED_COMMIT\n"
235
+ elif [[ $MESSAGE == fix* || $MESSAGE == bug* || $MESSAGE == improvement* || $MESSAGE == patch* ]]; then
236
+ BUG_FIXES+="$FORMATTED_COMMIT\n"
237
+ elif [[ $MESSAGE == refactor* ]]; then
238
+ REFACTORS+="$FORMATTED_COMMIT\n"
239
+ elif [[ $MESSAGE == style* ]]; then
240
+ STYLE_CHANGES+="$FORMATTED_COMMIT\n"
241
+ elif [[ $MESSAGE == perf* ]]; then
242
+ PERFORMANCE+="$FORMATTED_COMMIT\n"
243
+ elif [[ $MESSAGE == chore* || $MESSAGE == docs* || $MESSAGE == build* || $MESSAGE == ci* ]]; then
244
+ CHORES+="$FORMATTED_COMMIT\n"
245
+ fi
246
+ done
247
+
248
+ # Removed the version tag section
249
+ # echo "### ${GITHUB_REF#refs/tags/}" >> CHANGELOG.md # No version tag added
250
+
251
+ if [ -n "$FEATURES" ]; then
252
+ echo "### 🎉 New Features" >> CHANGELOG.md
253
+ echo -e "$FEATURES" >> CHANGELOG.md
254
+ fi
255
+ if [ -n "$BUG_FIXES" ]; then
256
+ echo "### 🛠️ Bug Fixes & Improvements" >> CHANGELOG.md
257
+ echo -e "$BUG_FIXES" >> CHANGELOG.md
258
+ fi
259
+ if [ -n "$REFACTORS" ]; then
260
+ echo "### 🔧 Refactors" >> CHANGELOG.md
261
+ echo -e "$REFACTORS" >> CHANGELOG.md
262
+ fi
263
+ if [ -n "$STYLE_CHANGES" ]; then
264
+ echo "### 🎨 Style Changes" >> CHANGELOG.md
265
+ echo -e "$STYLE_CHANGES" >> CHANGELOG.md
266
+ fi
267
+ if [ -n "$PERFORMANCE" ]; then
268
+ echo "### 🚀 Performance Improvements" >> CHANGELOG.md
269
+ echo -e "$PERFORMANCE" >> CHANGELOG.md
270
+ fi
271
+ if [ -n "$CHORES" ]; then
272
+ echo "### 🧹 Chores & Documentation" >> CHANGELOG.md
273
+ echo -e "$CHORES" >> CHANGELOG.md
274
+ fi
275
+
276
+ - name : Commit and push changelog
277
+ run : |
278
+ git config --global user.name "GitHub Actions"
279
+ git config --global user.email "actions@github.com"
280
+ git add CHANGELOG.md
281
+ git commit -m "Update changelog for version ${{ github.ref_name }}"
282
+ git push origin HEAD:main
283
+
284
+ - name : Set Tag Variable
285
+ id : tag
286
+ run : echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
287
+
288
+ - name : Create or Update Release
289
+ uses : ncipollo/release-action@v1
290
+ with :
291
+ token : ${{ secrets.GITHUB_TOKEN }}
292
+ bodyFile : CHANGELOG.md
293
+ tag : ${{ env.TAG }}
294
+ allowUpdates : true
0 commit comments