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
-
+
+