Skip to content

Commit 5cc8bf4

Browse files
chore(release): add release notes retrieval and update Discord notification
* chore(release): remove Discord notifier and enhance release workflow * chore(release): enhance version tracking in release workflow * chore(release): add release notes retrieval and update Discord notification --------- Co-authored-by: Mariano Fuentes <marfuen98@gmail.com>
1 parent e11b534 commit 5cc8bf4

2 files changed

Lines changed: 41 additions & 11 deletions

File tree

.github/workflows/release.yml

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,49 @@ jobs:
2727
- name: Install dependencies
2828
run: bun install --frozen-lockfile
2929

30+
- name: Get version before release
31+
id: version_before
32+
run: echo "version=$(git describe --tags --abbrev=0 2>/dev/null || echo '')" >> $GITHUB_OUTPUT
33+
3034
- name: Release
3135
env:
3236
GITHUB_TOKEN: ${{ secrets.GH_TOKEN || secrets.GITHUB_TOKEN }}
33-
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
3437
HUSKY: 0
3538
run: bun run semantic-release
39+
40+
- name: Get version after release
41+
id: version_after
42+
if: ${{ success() }}
43+
run: echo "version=$(git describe --tags --abbrev=0 2>/dev/null || echo '')" >> $GITHUB_OUTPUT
44+
45+
- name: Get release notes
46+
id: get_notes
47+
if: ${{ success() && steps.version_after.outputs.version && steps.version_before.outputs.version != steps.version_after.outputs.version }}
48+
run: |
49+
NOTES=$(gh release view ${{ steps.version_after.outputs.version }} --json body -q .body | head -c 3900)
50+
# Escape for JSON and handle multiline
51+
NOTES=$(echo "$NOTES" | jq -Rs . | sed 's/^"//;s/"$//')
52+
echo "notes<<EOF" >> $GITHUB_OUTPUT
53+
echo "$NOTES" >> $GITHUB_OUTPUT
54+
echo "EOF" >> $GITHUB_OUTPUT
55+
env:
56+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
57+
58+
- name: Send Discord notification
59+
if: ${{ success() && steps.version_after.outputs.version && steps.version_before.outputs.version != steps.version_after.outputs.version }}
60+
continue-on-error: true
61+
env:
62+
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
63+
VERSION: ${{ steps.version_after.outputs.version }}
64+
NOTES: ${{ steps.get_notes.outputs.notes }}
65+
run: |
66+
curl -X POST -H "Content-Type: application/json" \
67+
-d @- "$DISCORD_WEBHOOK" <<EOF
68+
{
69+
"embeds": [{
70+
"title": "New Release of Comp AI: ${VERSION}",
71+
"description": "${NOTES}",
72+
"color": 5814783
73+
}]
74+
}
75+
EOF

release.config.js

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,6 @@ module.exports = {
33
plugins: [
44
'@semantic-release/commit-analyzer',
55
'@semantic-release/release-notes-generator',
6-
[
7-
'semantic-release-discord-notifier',
8-
{
9-
embedJson: {
10-
title: 'New Release of Comp AI: ${nextRelease.version}',
11-
description: '${nextRelease.notes}',
12-
color: 5814783,
13-
},
14-
},
15-
],
166
'@semantic-release/changelog',
177
[
188
'@semantic-release/git',

0 commit comments

Comments
 (0)