Skip to content

Commit 4739634

Browse files
fix: release workflow - sed instead of awk, clean yaml
1 parent 55a6ec9 commit 4739634

File tree

1 file changed

+48
-42
lines changed

1 file changed

+48
-42
lines changed

.github/workflows/release.yml

Lines changed: 48 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,48 @@
1-
name: 🚀 Create GitHub Release
2-
3-
on:
4-
push:
5-
tags:
6-
- 'v*.*.*'
7-
8-
permissions:
9-
contents: write
10-
11-
jobs:
12-
release:
13-
name: Create GitHub Release
14-
runs-on: ubuntu-latest
15-
16-
steps:
17-
- name: 📦 Checkout code
18-
uses: actions/checkout@v4
19-
20-
- name: 📋 Extract release notes from CHANGELOG.md
21-
id: extract-release-notes
22-
run: |
23-
# Extract version from tag (remove 'v' prefix)
24-
VERSION=${GITHUB_REF#refs/tags/v}
25-
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
26-
27-
# Find the changelog section for this version
28-
# Look for "## [VERSION]" and extract until next "## [" or end of file
29-
awk -v version="$VERSION" '
30-
BEGIN { in_section = 0; found = 0 }
31-
$0 ~ "^## \\[" version "\\]" { in_section = 1; found = 1; next }
32-
33-
- name: 🚀 Create GitHub Release
34-
uses: actions/create-release@v1
35-
env:
36-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
37-
with:
38-
tag_name: ${{ github.ref }}
39-
release_name: Release v${{ steps.extract-release-notes.outputs.VERSION }}
40-
body: ${{ steps.extract-release-notes.outputs.notes }}
41-
draft: false
42-
prerelease: false
1+
name: Create GitHub Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*.*.*'
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
release:
13+
name: Create GitHub Release
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- name: Checkout code
18+
uses: actions/checkout@v4
19+
20+
- name: Extract release notes from CHANGELOG.md
21+
id: extract-release-notes
22+
run: |
23+
VERSION=${GITHUB_REF#refs/tags/v}
24+
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
25+
26+
# Extract changelog section for this version using sed
27+
sed -n "/^## \[$VERSION\]/,/^## \[/p" CHANGELOG.md | sed '$d' > release_notes.md
28+
29+
# If empty, provide default message
30+
if [ ! -s release_notes.md ]; then
31+
echo "Release $VERSION" > release_notes.md
32+
fi
33+
34+
{
35+
echo 'notes<<EOF'
36+
cat release_notes.md
37+
echo EOF
38+
} >> $GITHUB_OUTPUT
39+
40+
- name: Create GitHub Release
41+
uses: actions/create-release@v1
42+
env:
43+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
44+
with:
45+
tag_name: ${{ github.ref }}
46+
release_name: Release v${{ steps.extract-release-notes.outputs.VERSION }}
47+
body: ${{ steps.extract-release-notes.outputs.notes }}
48+
draft: false

0 commit comments

Comments
 (0)