Skip to content

Commit 835da62

Browse files
committed
refactor(release): move release creation to separate workflow
Moves the GitHub Release creation logic from the `tag-after-merge` workflow to the `release` workflow. This separates the tagging and release processes, making the release process more explicit and maintainable.
1 parent b2ec16e commit 835da62

2 files changed

Lines changed: 30 additions & 28 deletions

File tree

.github/workflows/release.yml

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,31 @@ jobs:
3636
run: pnpm run build
3737

3838
- name: Add build artifacts
39-
run: git add dist -f
39+
run: git add dist -f
40+
41+
- name: Extract release notes from CHANGELOG
42+
if: env.release_type != 'patch'
43+
id: changelog
44+
run: |
45+
# Match lines starting with "## vX.Y.Z " until the next "## "
46+
awk "/^## v${{ env.version }}[[:space:]]/{flag=1; next} /^## /{flag=0} flag" CHANGELOG.md > RELEASE_NOTES.md
47+
48+
echo "notes<<EOF" >> $GITHUB_ENV
49+
if [ "${{ env.release_type }}" = "major" ]; then
50+
echo "## 🚀 Major Release" >> $GITHUB_ENV
51+
elif [ "${{ env.release_type }}" = "minor" ]; then
52+
echo "## ✨ Minor Release" >> $GITHUB_ENV
53+
fi
54+
echo "" >> $GITHUB_ENV
55+
cat RELEASE_NOTES.md >> $GITHUB_ENV
56+
echo "EOF" >> $GITHUB_ENV
57+
58+
- name: Create GitHub Release
59+
if: env.release_type != 'patch'
60+
uses: softprops/action-gh-release@v2
61+
with:
62+
tag_name: v${{ env.version }}
63+
name: "Release v${{ env.version }}"
64+
body: ${{ env.notes }}
65+
env:
66+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/tag-after-merge.yml

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Tag and Release After Merge
1+
name: Tag After Merge
22

33
permissions:
44
contents: write
@@ -61,29 +61,4 @@ jobs:
6161
git tag v${{ env.version }}
6262
git push origin v${{ env.version }}
6363
64-
- name: Extract release notes from CHANGELOG
65-
if: env.release_type != 'patch'
66-
id: changelog
67-
run: |
68-
# Match lines starting with "## vX.Y.Z " until the next "## "
69-
awk "/^## v${{ env.version }}[[:space:]]/{flag=1; next} /^## /{flag=0} flag" CHANGELOG.md > RELEASE_NOTES.md
70-
71-
echo "notes<<EOF" >> $GITHUB_ENV
72-
if [ "${{ env.release_type }}" = "major" ]; then
73-
echo "## 🚀 Major Release" >> $GITHUB_ENV
74-
elif [ "${{ env.release_type }}" = "minor" ]; then
75-
echo "## ✨ Minor Release" >> $GITHUB_ENV
76-
fi
77-
echo "" >> $GITHUB_ENV
78-
cat RELEASE_NOTES.md >> $GITHUB_ENV
79-
echo "EOF" >> $GITHUB_ENV
80-
81-
- name: Create GitHub Release
82-
if: env.release_type != 'patch'
83-
uses: softprops/action-gh-release@v2
84-
with:
85-
tag_name: v${{ env.version }}
86-
name: "Release v${{ env.version }}"
87-
body: ${{ env.notes }}
88-
env:
89-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
64+

0 commit comments

Comments
 (0)