mirror of
https://github.com/PrismLibrary/Prism.git
synced 2026-10-19 23:19:59 +08:00
206 lines
7.4 KiB
YAML
206 lines
7.4 KiB
YAML
name: Prism CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- 'releases/**'
|
|
paths:
|
|
- .github/workflows/ci.yml
|
|
- Directory.Build.props
|
|
- Directory.Build.targets
|
|
- Directory.Packages.props
|
|
- xunit.runner.json
|
|
- version.json
|
|
- LICENSE
|
|
- global.json
|
|
- 'src/**'
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
- 'releases/**'
|
|
paths:
|
|
- .github/workflows/ci.yml
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build-prism-core:
|
|
uses: avantipoint/workflow-templates/.github/workflows/dotnet-build.yml@61adf86e5d3b2836b2b76fdb67cb71076521a9d7 # v2 with private feed URL secret support
|
|
with:
|
|
name: Build Prism.Core
|
|
solution-path: PrismLibrary_Core.slnf
|
|
test-projects: |
|
|
tests/Prism.Core.Tests/Prism.Core.Tests.csproj
|
|
code-sign: false
|
|
artifact-name: Core
|
|
dotnet-version: 10.0.100
|
|
secrets:
|
|
nugetFeedUrl: ${{ secrets.IN_HOUSE_NUGET_FEED }}
|
|
nugetUserName: ${{ secrets.IN_HOUSE_USER }}
|
|
nugetToken: ${{ secrets.IN_HOUSE_API_KEY }}
|
|
codeSignKeyVault: ${{ secrets.CodeSignKeyVault }}
|
|
codeSignClientId: ${{ secrets.CodeSignClientId }}
|
|
codeSignTenantId: ${{ secrets.CodeSignTenantId }}
|
|
codeSignClientSecret: ${{ secrets.CodeSignClientSecret }}
|
|
codeSignCertificate: ${{ secrets.CodeSignCertificate }}
|
|
|
|
build-prism-wpf:
|
|
uses: avantipoint/workflow-templates/.github/workflows/dotnet-build.yml@61adf86e5d3b2836b2b76fdb67cb71076521a9d7 # v2 with private feed URL secret support
|
|
with:
|
|
name: Build Prism.Wpf
|
|
solution-path: PrismLibrary_Wpf.slnf
|
|
test-projects: |
|
|
tests/Wpf/Prism.Wpf.Tests/Prism.Wpf.Tests.csproj
|
|
tests/Wpf/Prism.DryIoc.Wpf.Tests/Prism.DryIoc.Wpf.Tests.csproj
|
|
tests/Wpf/Prism.Unity.Wpf.Tests/Prism.Unity.Wpf.Tests.csproj
|
|
code-sign: false
|
|
artifact-name: Wpf
|
|
dotnet-version: 10.0.100
|
|
secrets:
|
|
nugetFeedUrl: ${{ secrets.IN_HOUSE_NUGET_FEED }}
|
|
nugetUserName: ${{ secrets.IN_HOUSE_USER }}
|
|
nugetToken: ${{ secrets.IN_HOUSE_API_KEY }}
|
|
codeSignKeyVault: ${{ secrets.CodeSignKeyVault }}
|
|
codeSignClientId: ${{ secrets.CodeSignClientId }}
|
|
codeSignTenantId: ${{ secrets.CodeSignTenantId }}
|
|
codeSignClientSecret: ${{ secrets.CodeSignClientSecret }}
|
|
codeSignCertificate: ${{ secrets.CodeSignCertificate }}
|
|
|
|
build-prism-uno:
|
|
uses: avantipoint/workflow-templates/.github/workflows/msbuild-build.yml@61adf86e5d3b2836b2b76fdb67cb71076521a9d7 # v2 with private feed URL secret support
|
|
with:
|
|
name: Build Prism.Uno
|
|
solution-path: PrismLibrary_Uno.slnf
|
|
windows-sdk-version: 18362
|
|
dotnet-version: 10.0.100
|
|
install-workload: ios android macos maccatalyst wasm-tools tvos
|
|
uno-check: false
|
|
uno-check-version: 1.33.1
|
|
uno-check-parameters: '--skip xcode --skip gtk3 --skip vswin --skip androidemulator --skip androidsdk --skip vsmac --skip dotnetnewunotemplates'
|
|
test-projects: |
|
|
tests/Uno/Prism.Uno.WinUI.Tests/Prism.Uno.WinUI.Tests.csproj
|
|
tests/Uno/Prism.DryIoc.Uno.WinUI.Tests/Prism.DryIoc.Uno.WinUI.Tests.csproj
|
|
code-sign: false
|
|
artifact-name: Uno
|
|
secrets:
|
|
nugetFeedUrl: ${{ secrets.IN_HOUSE_NUGET_FEED }}
|
|
nugetUserName: ${{ secrets.IN_HOUSE_USER }}
|
|
nugetToken: ${{ secrets.IN_HOUSE_API_KEY }}
|
|
codeSignKeyVault: ${{ secrets.CodeSignKeyVault }}
|
|
codeSignClientId: ${{ secrets.CodeSignClientId }}
|
|
codeSignTenantId: ${{ secrets.CodeSignTenantId }}
|
|
codeSignClientSecret: ${{ secrets.CodeSignClientSecret }}
|
|
codeSignCertificate: ${{ secrets.CodeSignCertificate }}
|
|
|
|
build-prism-maui:
|
|
uses: avantipoint/workflow-templates/.github/workflows/dotnet-build.yml@61adf86e5d3b2836b2b76fdb67cb71076521a9d7 # v2 with private feed URL secret support
|
|
with:
|
|
name: Build Prism.Maui
|
|
solution-path: PrismLibrary_Maui.slnf
|
|
install-workload: maui maui-tizen --version 11.0.100-rc.1.26458.5
|
|
test-projects: |
|
|
tests/Maui/Prism.Maui.Tests/Prism.Maui.Tests.csproj
|
|
tests/Maui/Prism.DryIoc.Maui.Tests/Prism.DryIoc.Maui.Tests.csproj
|
|
code-sign: false
|
|
artifact-name: Maui
|
|
dotnet-version: |
|
|
10.0.100
|
|
11.0.100-rc.1.26425.128
|
|
secrets:
|
|
nugetFeedUrl: ${{ secrets.IN_HOUSE_NUGET_FEED }}
|
|
nugetUserName: ${{ secrets.IN_HOUSE_USER }}
|
|
nugetToken: ${{ secrets.IN_HOUSE_API_KEY }}
|
|
codeSignKeyVault: ${{ secrets.CodeSignKeyVault }}
|
|
codeSignClientId: ${{ secrets.CodeSignClientId }}
|
|
codeSignTenantId: ${{ secrets.CodeSignTenantId }}
|
|
codeSignClientSecret: ${{ secrets.CodeSignClientSecret }}
|
|
codeSignCertificate: ${{ secrets.CodeSignCertificate }}
|
|
|
|
build-prism-avalonia:
|
|
uses: avantipoint/workflow-templates/.github/workflows/dotnet-build.yml@61adf86e5d3b2836b2b76fdb67cb71076521a9d7 # v2 with private feed URL secret support
|
|
with:
|
|
name: Build Prism.Avalonia
|
|
solution-path: PrismLibrary_Avalonia.slnf
|
|
test-projects: |
|
|
tests/Avalonia/Prism.Avalonia.Tests/Prism.Avalonia.Tests.csproj
|
|
tests/Avalonia/Prism.DryIoc.Avalonia.Tests/Prism.DryIoc.Avalonia.Tests.csproj
|
|
code-sign: false
|
|
artifact-name: Avalonia
|
|
dotnet-version: 10.0.100
|
|
secrets:
|
|
nugetFeedUrl: ${{ secrets.IN_HOUSE_NUGET_FEED }}
|
|
nugetUserName: ${{ secrets.IN_HOUSE_USER }}
|
|
nugetToken: ${{ secrets.IN_HOUSE_API_KEY }}
|
|
codeSignKeyVault: ${{ secrets.CodeSignKeyVault }}
|
|
codeSignClientId: ${{ secrets.CodeSignClientId }}
|
|
codeSignTenantId: ${{ secrets.CodeSignTenantId }}
|
|
codeSignClientSecret: ${{ secrets.CodeSignClientSecret }}
|
|
codeSignCertificate: ${{ secrets.CodeSignCertificate }}
|
|
|
|
generate-consolidated-artifacts:
|
|
needs: [build-prism-core, build-prism-wpf, build-prism-uno, build-prism-maui, build-prism-avalonia]
|
|
runs-on: windows-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Download Core
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: Core
|
|
path: artifacts\Core
|
|
|
|
- name: Download Wpf
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: Wpf
|
|
path: artifacts\Wpf
|
|
|
|
- name: Download Uno
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: Uno
|
|
path: artifacts\Uno
|
|
|
|
- name: Download Maui
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: Maui
|
|
path: artifacts\Maui
|
|
|
|
- name: Download Avalonia
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: Avalonia
|
|
path: artifacts\Avalonia
|
|
|
|
- name: Consolidate Artifacts
|
|
run: build\consolidate-artifacts.ps1
|
|
shell: powershell
|
|
|
|
- name: Upload Consolidated NuGets
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: NuGet
|
|
path: .\artifacts\nuget
|
|
|
|
deploy-internal:
|
|
uses: avantipoint/workflow-templates/.github/workflows/deploy-nuget.yml@v2
|
|
needs: generate-consolidated-artifacts
|
|
if: ${{ github.event_name == 'push' }}
|
|
with:
|
|
name: Deploy Internal
|
|
secrets:
|
|
feedUrl: ${{ secrets.IN_HOUSE_NUGET_FEED }}
|
|
apiKey: ${{ secrets.IN_HOUSE_API_KEY }}
|
|
|
|
deploy-commercial-plus:
|
|
uses: avantipoint/workflow-templates/.github/workflows/deploy-nuget.yml@v2
|
|
needs: generate-consolidated-artifacts
|
|
if: ${{ github.event_name == 'push' }}
|
|
with:
|
|
name: Deploy Commercial Plus
|
|
secrets:
|
|
feedUrl: ${{ secrets.PRISM_NUGET_FEED }}
|
|
apiKey: ${{ secrets.PRISM_NUGET_TOKEN }}
|