Merge pull request #596 from TheTrackerCouncil/msu-messenger-v1 #1207
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: .NET Build + Test + Publish | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
jobs: | |
build: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download config repo | |
uses: actions/checkout@v4 | |
with: | |
repository: TheTrackerCouncil/SMZ3CasConfigs | |
path: configs | |
ref: main | |
- name: Download sprite repo | |
uses: actions/checkout@v4 | |
with: | |
repository: TheTrackerCouncil/SMZ3CasSprites | |
path: sprites | |
ref: main | |
- name: Download git tree | |
if: ${{ github.event_name != 'pull_request' }} | |
shell: pwsh | |
run: | | |
Invoke-RestMethod -Uri https://api.github.com/repos/TheTrackerCouncil/SMZ3CasSprites/git/trees/main?recursive=1 -OutFile sprites/Sprites/sprites.json | |
- name: Setup .NET | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 8.0.x | |
- name: Restore dependencies | |
run: dotnet restore | |
- name: Build | |
run: dotnet build --no-restore -p:PostBuildEvent= | |
- name: Test | |
run: dotnet test --no-build --verbosity normal | |
- name: Publish Windows 64bit | |
if: ${{ github.event_name != 'pull_request' }} | |
run: dotnet publish --os win --arch x64 -c Release --self-contained false src/TrackerCouncil.Smz3.UI/TrackerCouncil.Smz3.UI.csproj | |
- name: Publish Windows 32bit | |
if: ${{ github.event_name != 'pull_request' }} | |
run: dotnet publish --os win --arch x86 -c Release --self-contained false src/TrackerCouncil.Smz3.UI/TrackerCouncil.Smz3.UI.csproj | |
- name: Get version number | |
if: ${{ github.event_name != 'pull_request' }} | |
id: version | |
run: | | |
$version = (Get-Item "src\TrackerCouncil.Smz3.UI\bin\Release\net8.0\win-x86\publish\SMZ3CasRandomizer.exe").VersionInfo.ProductVersion | |
$version = $version -replace "\+.*", "" | |
Write-Output "number=$version" >> $env:GITHUB_OUTPUT | |
shell: pwsh | |
- name: Publish Linux 64bit | |
if: ${{ github.event_name != 'pull_request' }} | |
run: dotnet publish --os linux --arch x64 -c Release --self-contained false src/TrackerCouncil.Smz3.UI/TrackerCouncil.Smz3.UI.csproj | |
- name: Publish Multiplayer Server | |
if: ${{ github.event_name != 'pull_request' }} | |
run: dotnet publish -c Release --self-contained false src//TrackerCouncil.Smz3.Multiplayer.Server//TrackerCouncil.Smz3.Multiplayer.Server.csproj | |
- name: Building the Windows installer | |
if: ${{ github.event_name != 'pull_request' }} | |
run: "\"%programfiles(x86)%/Inno Setup 6/iscc.exe\" \"setup/randomizer.app.iss\"" | |
shell: cmd | |
- name: Building the Linux 64bit package | |
if: ${{ github.event_name != 'pull_request' }} | |
working-directory: setup | |
run: "./LinuxBuildZipper.ps1" | |
shell: pwsh | |
- name: Building the Multiplayer Server package | |
if: ${{ github.event_name != 'pull_request' }} | |
working-directory: setup | |
run: "./MultiplayerServerZipper.ps1" | |
shell: pwsh | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
if: ${{ github.event_name != 'pull_request' }} | |
with: | |
path: "setup/Output/*" | |
name: SMZ3CasRandomizer_${{ steps.version.outputs.number }} | |
build-mac: | |
runs-on: macos-latest | |
if: ${{ github.event_name != 'pull_request' }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download config repo | |
uses: actions/checkout@v4 | |
with: | |
repository: TheTrackerCouncil/SMZ3CasConfigs | |
path: configs | |
ref: main | |
- name: Download sprite repo | |
uses: actions/checkout@v4 | |
with: | |
repository: TheTrackerCouncil/SMZ3CasSprites | |
path: sprites | |
ref: main | |
- name: Setup .NET | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 8.0.x | |
- name: Restore dependencies | |
run: dotnet restore src/TrackerCouncil.Smz3.UI/TrackerCouncil.Smz3.UI.csproj | |
- name: Build | |
run: dotnet build --no-restore -p:PostBuildEvent= src/TrackerCouncil.Smz3.UI/TrackerCouncil.Smz3.UI.csproj | |
- name: Publish | |
run: dotnet publish -r osx-arm64 --configuration Release -p:UseAppHost=true src/TrackerCouncil.Smz3.UI/TrackerCouncil.Smz3.UI.csproj | |
- name: Get version number | |
id: version | |
run: | | |
$version = (Get-Item "src\TrackerCouncil.Smz3.UI\bin\Release\net8.0\osx-arm64\publish\SMZ3CasRandomizer.dll").VersionInfo.ProductVersion | |
$version = $version -replace "\+.*", "" | |
$versionShort = $version -replace "\-.*", "" | |
(Get-Content setup/Info.plist).Replace('%FULL_VERSION%', $version).Replace('%SHORT_VERSION%', $versionShort) | Set-Content setup/Info.plist | |
Write-Output "number=$version" >> $env:GITHUB_OUTPUT | |
shell: pwsh | |
- name: Prepare packaging script | |
run: | | |
chmod +x ./setup/package-macos-app.sh | |
./setup/package-macos-app.sh "${{ steps.version.outputs.number }}" | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
path: "setup/output/*" | |
name: SMZ3CasRandomizerMacOS_${{ steps.version.outputs.number }} |