Skip to content

Commit a3d1835

Browse files
committed
Update dotnet-desktop.yml
1 parent d922b2c commit a3d1835

1 file changed

Lines changed: 33 additions & 12 deletions

File tree

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Framework-Dependent Release
1+
name: Multi-Platform Release
22

33
on:
44
push:
@@ -10,7 +10,18 @@ permissions:
1010

1111
jobs:
1212
build:
13-
runs-on: windows-latest
13+
strategy:
14+
matrix:
15+
# Define the target platforms
16+
include:
17+
- os: windows-latest
18+
rid: win-x64
19+
suffix: Win64
20+
- os: ubuntu-latest
21+
rid: linux-x64
22+
suffix: Linux-x64
23+
24+
runs-on: ${{ matrix.os }}
1425

1526
steps:
1627
- name: Checkout
@@ -21,27 +32,37 @@ jobs:
2132
with:
2233
dotnet-version: '10.0.x'
2334

24-
- name: Publish (Win-x64)
25-
# --self-contained false: Requires user to have .NET 10 Runtime
26-
# PublishSingleFile=false: Keeps files separate, preventing %TEMP% extraction
35+
- name: Publish
36+
# We enable ReadyToRun only on the native OS for that RID
2737
run: >
2838
dotnet publish WarframeMarketTracker.csproj
2939
-c Release
30-
-r win-x64
40+
-r ${{ matrix.rid }}
3141
--self-contained false
3242
-p:PublishSingleFile=false
3343
-p:PublishReadyToRun=true
34-
-o ./publish
44+
-o ./publish-${{ matrix.rid }}
3545
36-
- name: Zip Release Folder
46+
- name: Zip Release Folder (Windows)
47+
if: matrix.os == 'windows-latest'
3748
shell: pwsh
38-
run: Compress-Archive -Path ./publish/* -DestinationPath ./WarframeMarketTracker_Win64_Portable.zip
49+
run: Compress-Archive -Path ./publish-${{ matrix.rid }}/* -DestinationPath ./WarframeMarketTracker_${{ matrix.suffix }}.zip
50+
51+
- name: Tar Release Folder (Linux)
52+
if: matrix.os == 'ubuntu-latest'
53+
run: tar -czvf WarframeMarketTracker_${{ matrix.suffix }}.tar.gz -C ./publish-${{ matrix.rid }} .
3954

4055
- name: Create Release
4156
uses: softprops/action-gh-release@v2
4257
with:
43-
files: WarframeMarketTracker_Win64_Portable.zip
58+
files: |
59+
WarframeMarketTracker_Win64.zip
60+
WarframeMarketTracker_Linux-x64.tar.gz
4461
name: Version ${{ github.ref_name }}
45-
body: "Windows 11+ (Requires .NET 10 Runtime)"
62+
body: |
63+
Multi-platform build for Version ${{ github.ref_name }}
64+
Requires .NET 10 Runtime installed on the host system.
65+
# This 'append_body' ensures parallel jobs don't overwrite each other
66+
append_body: true
4667
env:
47-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
68+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)