Skip to content

Commit f1aaec9

Browse files
committed
ci: Release
1 parent cb2ca12 commit f1aaec9

File tree

1 file changed

+51
-5
lines changed

1 file changed

+51
-5
lines changed

.github/workflows/build.yml

Lines changed: 51 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,17 @@ on: [push, workflow_dispatch]
55
env:
66
XMAKE_ROOT: y
77

8+
permissions:
9+
contents: write
10+
811
jobs:
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

Comments
 (0)