6161 fi
6262 echo "✓ No existing release assets found"
6363
64- create-release :
65- name : Create GitHub Release
66- needs : verify-release
67- runs-on : ubuntu-latest
68- permissions :
69- contents : write
70- outputs :
71- upload_url : ${{ steps.create_release.outputs.upload_url }}
72- steps :
73- - name : Checkout code
74- uses : actions/checkout@v4
75- with :
76- ref : ${{ inputs.version }}
77-
78- - name : Extract release notes from Changes file
79- id : extract_notes
80- run : |
81- if [[ -f Changes ]]; then
82- # Extract changes for this version from Changes file
83- awk '/^- version: '"$VERSION"'$/,/^- version:/ {
84- if (/^- version: '"$VERSION"'$/) next;
85- if (/^- version:/) exit;
86- if (/^ changes:/) next;
87- if (/^ date:/) next;
88- print
89- }' Changes | sed 's/^ //' > release-notes.txt
90-
91- if [[ ! -s release-notes.txt ]]; then
92- echo "Release $VERSION" > release-notes.txt
93- fi
94- else
95- echo "Release $VERSION" > release-notes.txt
96- fi
97-
98- echo "Release notes:"
99- cat release-notes.txt
100-
101- - name : Create GitHub Release
102- id : create_release
103- env :
104- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
105- run : |
106- if gh release view "$VERSION" >/dev/null 2>&1; then
107- echo "Release $VERSION already exists, skipping creation"
108- else
109- gh release create "$VERSION" \
110- --title "$VERSION" \
111- --notes-file release-notes.txt \
112- --draft=false \
113- --prerelease=false
114- fi
115-
11664 build-linux-x64 :
11765 name : Build Linux x64
118- needs : create -release
66+ needs : verify -release
11967 runs-on : ubuntu-latest
12068 container : ubuntu:20.04
12169 steps :
@@ -157,7 +105,7 @@ jobs:
157105
158106 build-macos-arm64 :
159107 name : Build macOS ARM64 (Apple Silicon)
160- needs : create -release
108+ needs : verify -release
161109 runs-on : macos-latest
162110 steps :
163111 - name : Checkout code
@@ -191,8 +139,8 @@ jobs:
191139 libys-*.tar.xz
192140 retention-days : 7
193141
194- upload-assets :
195- name : Upload Release Assets
142+ create-release :
143+ name : Create GitHub Release
196144 needs :
197145 - build-linux-x64
198146 - build-macos-arm64
@@ -205,6 +153,56 @@ jobs:
205153 with :
206154 ref : ${{ inputs.version }}
207155
156+ - name : Extract release notes from Changes file
157+ id : extract_notes
158+ run : |
159+ if [[ -f Changes ]]; then
160+ # Extract changes for this version from Changes file
161+ awk '/^- version: '"$VERSION"'$/,/^- version:/ {
162+ if (/^- version: '"$VERSION"'$/) next;
163+ if (/^- version:/) exit;
164+ if (/^ changes:/) next;
165+ if (/^ date:/) next;
166+ print
167+ }' Changes | sed 's/^ //' > release-notes.txt
168+
169+ if [[ ! -s release-notes.txt ]]; then
170+ echo "Release $VERSION" > release-notes.txt
171+ fi
172+ else
173+ echo "Release $VERSION" > release-notes.txt
174+ fi
175+
176+ echo "Release notes:"
177+ cat release-notes.txt
178+
179+ - name : Create GitHub Release
180+ id : create_release
181+ env :
182+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
183+ run : |
184+ if gh release view "$VERSION" >/dev/null 2>&1; then
185+ echo "Release $VERSION already exists, skipping creation"
186+ else
187+ gh release create "$VERSION" \
188+ --title "$VERSION" \
189+ --notes-file release-notes.txt \
190+ --draft=false \
191+ --prerelease=false
192+ fi
193+
194+ upload-assets :
195+ name : Upload Release Assets
196+ needs : create-release
197+ runs-on : ubuntu-latest
198+ permissions :
199+ contents : write
200+ steps :
201+ - name : Checkout code
202+ uses : actions/checkout@v4
203+ with :
204+ ref : ${{ inputs.version }}
205+
208206 - name : Download all artifacts
209207 uses : actions/download-artifact@v4
210208
0 commit comments