From 58e1ef5b66e27bf0c2ee1bd75b07258c397068b7 Mon Sep 17 00:00:00 2001 From: Zhang Dian <54255897+zdpcdt@users.noreply.github.com> Date: Sat, 28 Dec 2024 20:05:27 +0800 Subject: [PATCH] feat: manually managing pack, publish & deploy workflows. --- .github/workflows/deploy.yml | 7 ++---- .github/workflows/pack.yml | 47 ++++++++++++++++++++++++++--------- .github/workflows/publish.yml | 27 +++++++++++++++++--- 3 files changed, 60 insertions(+), 21 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 1973f6e..6fc71ac 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -4,10 +4,7 @@ env: PROJECT_PATH: demo/Ursa.Demo.Browser/Ursa.Demo.Browser.csproj OUTPUT_PATH: demo/Ursa.Demo.Browser/bin/Release/net8.0-browser/publish/wwwroot on: - push: - branches: [ "action/deploy" ] - pull_request: - branches: [ "action/deploy" ] + workflow_dispatch: jobs: deploy-to-github-pages: @@ -28,7 +25,7 @@ jobs: run: dotnet publish $PROJECT_PATH -c Release --nologo - name: Change base-tag in index.html - run: sed -i 's///g' $OUTPUT_PATH/index.html + run: sed -i 's###g' $OUTPUT_PATH/index.html - name: copy index.html to 404.html run: cp $OUTPUT_PATH/index.html $OUTPUT_PATH/404.html diff --git a/.github/workflows/pack.yml b/.github/workflows/pack.yml index 98ca915..1a5ab9f 100644 --- a/.github/workflows/pack.yml +++ b/.github/workflows/pack.yml @@ -1,28 +1,50 @@ -name: Pack Nuget +name: Pack to NuGet on: - push: - branches: [ "action/pack" ] - pull_request: - branches: [ "action/pack" ] + workflow_dispatch: + inputs: + Ursa: + description: 'Pack Ursa' + required: true + default: 'true' + type: boolean + Ursa_Themes_Semi: + description: 'Pack Ursa.Themes.Semi' + required: true + default: 'true' + type: boolean + PrismExtension: + description: 'Pack Prism Extension' + required: true + default: 'false' + type: boolean + ReactiveUIExtension: + description: 'Pack ReactiveUI Extension' + required: true + default: 'false' + type: boolean jobs: - nuget: + Pack_to_NuGet: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4.1.1 - - name: Nuget Ursa + - name: Pack Ursa + if: ${{ github.event.inputs.Ursa == 'true' }} run: dotnet pack ./src/Ursa -o ./nugets - - name: Nuget Ursa.Themes.Semi + - name: Pack Ursa.Themes.Semi + if: ${{ github.event.inputs.Ursa_Themes_Semi == 'true' }} run: dotnet pack ./src/Ursa.Themes.Semi -o ./nugets - - - name: Nuget Prism Extension + + - name: Pack Prism Extension + if: ${{ github.event.inputs.PrismExtension == 'true' }} run: dotnet pack ./src/Ursa.PrismExtension -o ./nugets - - - name: Nuget ReactiveUI Extension + + - name: Pack ReactiveUI Extension + if: ${{ github.event.inputs.ReactiveUIExtension == 'true' }} run: dotnet pack ./src/Ursa.ReactiveUIExtension -o ./nugets - name: Publish NuGet package @@ -33,3 +55,4 @@ jobs: with: name: nugets path: ./nugets + if: always() \ No newline at end of file diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 72221db..9d8d097 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,13 +1,27 @@ name: Publish Demo on: - push: - branches: [ "action/publish" ] - pull_request: - branches: [ "action/publish" ] + 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 @@ -25,14 +39,17 @@ jobs: 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##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.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 @@ -44,6 +61,7 @@ jobs: path: ./upload linux: + if: ${{ github.event.inputs.platform == 'linux' || github.event.inputs.platform == 'all' }} runs-on: ubuntu-latest steps: - name: Checkout @@ -65,6 +83,7 @@ jobs: path: ./upload android: + if: ${{ github.event.inputs.platform == 'android' || github.event.inputs.platform == 'all' }} runs-on: windows-latest steps: - name: Checkout