name: Publish Demo on: workflow_dispatch: inputs: platform: description: 'Platform to publish' required: true default: 'all' type: choice options: - 'windows' - 'linux' - 'android' - 'all' win64: description: 'Windows x64' required: true default: true type: boolean win64_aot: description: 'Windows x64 AOT' required: true default: true type: boolean jobs: windows: if: ${{ github.event.inputs.platform == 'windows' || github.event.inputs.platform == 'all' }} runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v4.1.1 - name: Make upload directory run: mkdir upload - name: Publish win-x64 if: ${{ github.event.inputs.win64 == 'true' }} run: dotnet publish demo/Ursa.Demo.Desktop -r win-x64 -c Release -o publish/win64 --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true - name: Zip win-x64 if: ${{ github.event.inputs.win64 == 'true' }} run: | $files = Get-ChildItem -Path publish/win64/* -Recurse -Exclude *.pdb Compress-Archive -Path $files.FullName -DestinationPath upload/Ursa.Demo.Desktop.win-x64.zip - name: Enable Native AOT in .csproj if: ${{ github.event.inputs.win64_aot == 'true' }} run: | sed -i 's##true#' demo/Ursa.Demo.Desktop/Ursa.Demo.Desktop.csproj sed -i 's##true#' demo/Ursa.Demo.Desktop/Ursa.Demo.Desktop.csproj - name: Publish win-x64 AOT if: ${{ github.event.inputs.win64_aot == 'true' }} run: dotnet publish demo/Ursa.Demo.Desktop -r win-x64 -c Release -o publish/win64-aot - name: Zip win-x64 AOT if: ${{ github.event.inputs.win64_aot == 'true' }} run: | $files = Get-ChildItem -Path publish/win64-aot/* -Recurse -Exclude *.pdb Compress-Archive -Path $files.FullName -DestinationPath upload/Ursa.Demo.Desktop.win-x64.NativeAOT.zip - name: Upload a Build Artifact uses: actions/upload-artifact@v4.3.1 with: name: windows path: upload linux: if: ${{ github.event.inputs.platform == 'linux' || github.event.inputs.platform == 'all' }} runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4.1.1 - name: Make upload directory run: mkdir upload - name: Publish linux-x64 run: dotnet publish demo/Ursa.Demo.Desktop -r linux-x64 -c Release -o publish/linux64 --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true - name: Zip linux-x64 run: zip -j -r upload/Ursa.Demo.Desktop.linux-x64.zip publish/linux64 -x "*.pdb" - name: Upload a Build Artifact uses: actions/upload-artifact@v4.3.1 with: name: linux path: upload android: if: ${{ github.event.inputs.platform == 'android' || github.event.inputs.platform == 'all' }} runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v4.1.1 - name: CD Android run: cd demo/Ursa.Demo.Android - name: Restore Dependencies run: dotnet restore - name: Publish Android run: dotnet publish demo/Ursa.Demo.Android -c Release -f net8.0-android --no-restore -o publish -p:RuntimeIdentifier=android-arm64 - name: Upload a Build Artifact uses: actions/upload-artifact@v4.3.1 with: name: android path: publish/*Signed.apk