diff --git a/.github/workflows/pack.yml b/.github/workflows/pack.yml index 5f0a4b5..7882e33 100644 --- a/.github/workflows/pack.yml +++ b/.github/workflows/pack.yml @@ -1,4 +1,4 @@ -name: Pack +name: Pack Nuget on: push: @@ -7,8 +7,8 @@ on: branches: [ "action/pack" ] jobs: - nuget_desktop: - runs-on: windows-latest + nuget: + runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4.1.1 @@ -25,34 +25,8 @@ jobs: - name: Nuget Semi.Avalonia.TreeDataGrid run: dotnet pack ./src/Semi.Avalonia.TreeDataGrid -o ./nugets - - name: Desktop - run: dotnet publish ./demo/Semi.Avalonia.Demo.Desktop -r win-x64 -c Release /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true --self-contained true - - name: Upload a Build Artifact uses: actions/upload-artifact@v4.3.1 with: - name: nuget_desktop - path: | - ./nugets - ./**/publish/*.exe - - android: - runs-on: windows-latest - steps: - - name: Checkout - uses: actions/checkout@v4.1.1 - - - name: CD Android - run: cd ./demo/Semi.Avalonia.Demo.Android - - - name: Restore Dependencies - run: dotnet restore - - - name: Build - run: dotnet publish ./demo/Semi.Avalonia.Demo.Android -c Release -f net8.0-android --no-restore - - - name: Upload a Build Artifact - uses: actions/upload-artifact@v4.3.1 - with: - name: android - path: ./**/publish/*Signed.apk + name: nugets + path: ./nugets diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..81e01be --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,92 @@ +name: Publish Demo + +on: + push: + branches: [ "action/publish" ] + pull_request: + branches: [ "action/publish" ] + +jobs: + windows: + 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/Semi.Avalonia.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/Semi.Avalonia.Demo.Desktop.win-x64.zip + + - name: Enable Native AOT in .csproj + run: | + sed -i 's##true#' demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj + sed -i 's##true#' demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj + + - name: Publish win-x64 AOT + run: dotnet publish demo/Semi.Avalonia.Demo.Desktop -r win-x64 -c Release -o ./publish/win64-aot + + - name: Zip win-x64 AOT + run: | + $files = Get-ChildItem -Path ./publish/win64-aot/* -Recurse -Exclude *.pdb + Compress-Archive -Path $files.FullName -DestinationPath ./upload/Semi.Avalonia.Demo.Desktop.win-x64.NativeAOT.zip + + - name: Upload a Build Artifact + uses: actions/upload-artifact@v4.3.1 + with: + name: windows + path: ./upload + + linux: + 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/Semi.Avalonia.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/Semi.Avalonia.Demo.Desktop.linux-x64.zip ./publish/linux64 -x "*.pdb" + + - name: Publish linux-x64 DRM + run: dotnet publish demo/Semi.Avalonia.Demo.Drm -r linux-x64 -c Release --sc /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true -o ./publish/drm + + - name: Zip linux-x64 DRM + run: zip -j -r ./upload/Semi.Avalonia.Demo.Drm.linux-x64.zip ./publish/drm -x "*.pdb" + + - name: Upload a Build Artifact + uses: actions/upload-artifact@v4.3.1 + with: + name: linux + path: ./upload + + android: + runs-on: windows-latest + steps: + - name: Checkout + uses: actions/checkout@v4.1.1 + + - name: CD Android + run: cd ./demo/Semi.Avalonia.Demo.Android + + - name: Restore Dependencies + run: dotnet restore + + - name: Publish Android + run: dotnet publish demo/Semi.Avalonia.Demo.Android -c Release -f net8.0-android --no-restore -o ./publish + + - name: Upload a Build Artifact + uses: actions/upload-artifact@v4.3.1 + with: + name: android + path: ./publish/*Signed.apk diff --git a/demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj b/demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj index d5a8648..d697ebd 100644 --- a/demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj +++ b/demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj @@ -5,10 +5,8 @@ enable true - + + diff --git a/demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj b/demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj index a6db875..2671f20 100644 --- a/demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj +++ b/demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj @@ -5,10 +5,8 @@ enable true - + +