@@ -5,13 +5,17 @@ on: [push, workflow_dispatch]
55env :
66 XMAKE_ROOT : y
77
8+ permissions :
9+ contents : write
10+
811jobs :
912 versioning :
1013 runs-on : ubuntu-latest
1114 outputs :
1215 fullSemVer : ${{ steps.version_step.outputs.fullSemVer }}
1316 semVer : ${{ steps.version_step.outputs.semVer }}
1417 informationalVersion : ${{ steps.version_step.outputs.informationalVersion }}
18+ preReleaseLabel : ${{ steps.version_step.outputs.preReleaseLabel }}
1519 steps :
1620 - name : Checkout repository and submodules
1721 uses : actions/checkout@v4
@@ -114,7 +118,7 @@ jobs:
114118 key : ${{ runner.os }}-build
115119 - name : Build
116120 run : |
117- xmake f --ccache=y
121+ xmake f --ccache=y -y
118122 xmake build -y
119123 env :
120124 SWIFTLY_VERSION : ${{ needs.versioning.outputs.fullSemVer }}
@@ -185,12 +189,54 @@ jobs:
185189 cp -r linux-runtimes/content/ ${{ env.LINUX_FOLDER }}-with-runtimes/swiftlys2/bin/managed/dotnet
186190 cp -r windows-runtimes/content/ ${{ env.WINDOWS_FOLDER }}-with-runtimes/swiftlys2/bin/managed/dotnet
187191
192+ zip -r ${{ env.LINUX_FOLDER }}-with-runtimes.zip ${{ env.LINUX_FOLDER }}-with-runtimes
193+ zip -r ${{ env.WINDOWS_FOLDER }}-with-runtimes.zip ${{ env.WINDOWS_FOLDER }}-with-runtimes
194+ zip -r ${{ env.LINUX_FOLDER }}.zip ${{ env.LINUX_FOLDER }}
195+ zip -r ${{ env.WINDOWS_FOLDER }}.zip ${{ env.WINDOWS_FOLDER }}
196+
188197 - name : Upload package
189198 uses : actions/upload-artifact@v4
190199 with :
191200 name : swiftlys2-package-${{ needs.versioning.outputs.fullSemVer }}
192201 path : |
193- ${{ env.LINUX_FOLDER }}
194- ${{ env.WINDOWS_FOLDER }}
195- ${{ env.LINUX_FOLDER }}-with-runtimes
196- ${{ env.WINDOWS_FOLDER }}-with-runtimes
202+ ${{ env.LINUX_FOLDER }}.zip
203+ ${{ env.WINDOWS_FOLDER }}.zip
204+ ${{ env.LINUX_FOLDER }}-with-runtimes.zip
205+ ${{ env.WINDOWS_FOLDER }}-with-runtimes.zip
206+
207+ releasing :
208+ needs : [versioning, packaging]
209+ runs-on : ubuntu-latest
210+ steps :
211+ - name : Checkout repository and submodules
212+ uses : actions/checkout@v4
213+ with :
214+ fetch-depth : 0
215+ - name : Create tag
216+ run : |
217+ TAG_NAME="${{ needs.versioning.outputs.fullSemVer }}"
218+ MSG="Release v${{ needs.versioning.outputs.fullSemVer }}"
219+ if git rev-parse -q --verify "refs/tags/$TAG_NAME" >/dev/null; then
220+ echo "Tag $TAG_NAME already exists"; exit 1
221+ fi
222+ git tag -a "$TAG_NAME" -m "${MSG}"
223+ git push origin "$TAG_NAME"
224+
225+ - name : Download artifacts
226+ uses : actions/download-artifact@v4
227+ with :
228+ name : swiftlys2-package-${{ needs.versioning.outputs.fullSemVer }}
229+ path : ./release
230+
231+ - name : Create release
232+ uses : softprops/action-gh-release@v2
233+ with :
234+ generate_release_notes : true
235+ files : |
236+ release/swiftlys2-linux-${{ needs.versioning.outputs.fullSemVer }}.zip
237+ release/swiftlys2-windows-${{ needs.versioning.outputs.fullSemVer }}.zip
238+ release/swiftlys2-linux-with-runtimes-${{ needs.versioning.outputs.fullSemVer }}.zip
239+ release/swiftlys2-windows-with-runtimes-${{ needs.versioning.outputs.fullSemVer }}.zip
240+ prerelease : ${{ needs.versioning.outputs.preReleaseLabel != '' }}
241+ title : Release v${{ needs.versioning.outputs.fullSemVer }}
242+ body : ${{ needs.versioning.outputs.fullSemVer }}
0 commit comments