1- # This workflow will build a .NET project
2- # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net
3-
41name : Release
52
63on :
96
107jobs :
118 release :
9+ name : ${{ matrix.target }}
10+
1211 permissions :
1312 contents : write
13+
14+ strategy :
15+ matrix :
16+ include :
17+ - target : x86_64-pc-windows-msvc
18+ os : windows-latest
19+ - target : x86_64-apple-darwin
20+ os : macos-13
21+ - target : aarch64-apple-darwin
22+ os : macos-latest
1423
15- runs-on : ubuntu-latest
24+ runs-on : ${{ matrix.os }}
1625
1726 steps :
1827 - uses : actions/checkout@v4
19- - name : Setup .NET
20- uses : actions/setup-dotnet@v4
28+ - uses : dtolnay/rust-toolchain@master
2129 with :
22- dotnet-version : 8.0.x
23- - name : Publish
30+ toolchain : stable
31+ target : ${{ matrix.target }}
32+ - name : Build
2433 run : |
25- dotnet publish src -r win-x64
26- dotnet publish src -r osx-x64
27- dotnet publish src -r osx-arm64
34+ cargo build --release --target ${{ matrix.target }}
35+
36+ if [ "${{ matrix.os }}" = "windows-latest" ]; then
37+ bin="target/${{ matrix.target }}/release/livetagger.exe"
38+ else
39+ bin="target/${{ matrix.target }}/release/livetagger"
40+ fi
41+
42+ echo "BIN=$bin" >> $GITHUB_ENV
2843 - name : Zip artifacts
2944 run : |
3045 tag=$(git describe --tags --abbrev=0)
3146
32- 7z a "livetagger-$tag-win-x64.zip" "./src/bin/Release/net8.0/win-x64/publish/*"
33- 7z a "livetagger-$tag-osx-x64.zip" "./src/bin/Release/net8.0/osx-x64/publish/*"
34- 7z a "livetagger-$tag-osx-arm64.zip" "./src/bin/Release/net8.0/osx-arm64/publish/*"
47+ 7z a "livetagger-$tag-$target-x64.zip" $bin
3548 - name : Publish
3649 uses : softprops/action-gh-release@v2
3750 with :
3851 files : " livetagger*"
3952 env :
40- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
53+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments