106 lines
3.6 KiB
YAML
106 lines
3.6 KiB
YAML
name: Publish Demo
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
platform:
|
|
description: 'Platform to publish'
|
|
required: true
|
|
default: 'all'
|
|
type: choice
|
|
options:
|
|
- 'windows'
|
|
- 'linux'
|
|
- 'android'
|
|
- 'all'
|
|
include_aot:
|
|
description: 'Include Windows AOT packaging'
|
|
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
|
|
run: dotnet publish demo/Ursa.Demo.Desktop -r win-x64 -c Release --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true -o ./publish/win64
|
|
|
|
- name: Zip win-x64
|
|
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.include_aot == 'true' }}
|
|
run: |
|
|
sed -i 's#<!--<PublishAot>true</PublishAot>-->#<PublishAot>true</PublishAot>#' demo/Ursa.Demo.Desktop/Ursa.Demo.Desktop.csproj
|
|
sed -i 's#<!--<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>-->#<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>#' demo/Ursa.Demo.Desktop/Ursa.Demo.Desktop.csproj
|
|
|
|
- name: Publish win-x64 AOT
|
|
if: ${{ github.event.inputs.include_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.include_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 --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true -o ./publish/linux64
|
|
|
|
- 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
|