Release All Packages #67
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release All Packages | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'Package version for ALL packages (e.g. 1.0.0, 1.2.3-beta.1)' | |
| required: true | |
| type: string | |
| jobs: | |
| release: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: '10.0.x' | |
| - name: Build | |
| run: dotnet build ZibStack.NET.slnx -c Release | |
| - name: Test Log | |
| run: dotnet test packages/ZibStack.NET.Log/tests/ZibStack.NET.Log.Tests/ZibStack.NET.Log.Tests.csproj -c Release --no-build | |
| - name: Test Dto | |
| run: dotnet test packages/ZibStack.NET.Dto/tests/ZibStack.NET.Dto.Tests/ZibStack.NET.Dto.Tests.csproj -c Release --no-build | |
| - name: Test UI | |
| run: dotnet test packages/ZibStack.NET.UI/tests/ZibStack.NET.UI.Tests/ZibStack.NET.UI.Tests.csproj -c Release --no-build | |
| - name: Test Query | |
| run: dotnet test packages/ZibStack.NET.Query/tests/ZibStack.NET.Query.Tests/ZibStack.NET.Query.Tests.csproj -c Release --no-build | |
| # Pack in dependency order | |
| - name: Pack 1 — Aop.Abstractions | |
| run: dotnet pack packages/ZibStack.NET.Aop/src/ZibStack.NET.Aop.Abstractions/ZibStack.NET.Aop.Abstractions.csproj -c Release -o ./artifacts -p:PackageVersion=${{ inputs.version }} | |
| # Bundles ZibStack.NET.Aop.dll (generator) + ZibStack.NET.Aop.Analyzers.dll | |
| # (15 AOP00xx diagnostics) + ZibStack.NET.Aop.CodeFixes.dll (9 code fixes). | |
| # All three ride along under analyzers/dotnet/cs in a single .nupkg. | |
| - name: Pack 2 — Aop (with Analyzers + CodeFixes bundled) | |
| run: dotnet pack packages/ZibStack.NET.Aop/src/ZibStack.NET.Aop/ZibStack.NET.Aop.csproj -c Release -o ./artifacts -p:PackageVersion=${{ inputs.version }} | |
| - name: Pack 2a — Aop.Polly | |
| run: dotnet pack packages/ZibStack.NET.Aop/src/ZibStack.NET.Aop.Polly/ZibStack.NET.Aop.Polly.csproj -c Release -o ./artifacts -p:PackageVersion=${{ inputs.version }} | |
| - name: Pack 2b — Aop.HybridCache | |
| run: dotnet pack packages/ZibStack.NET.Aop/src/ZibStack.NET.Aop.HybridCache/ZibStack.NET.Aop.HybridCache.csproj -c Release -o ./artifacts -p:PackageVersion=${{ inputs.version }} | |
| - name: Pack 3 — Log.Abstractions | |
| run: dotnet pack packages/ZibStack.NET.Log/src/ZibStack.NET.Log.Abstractions/ZibStack.NET.Log.Abstractions.csproj -c Release -o ./artifacts -p:PackageVersion=${{ inputs.version }} | |
| - name: Pack 4 — Log | |
| run: dotnet pack packages/ZibStack.NET.Log/src/ZibStack.NET.Log/ZibStack.NET.Log.csproj -c Release -o ./artifacts -p:PackageVersion=${{ inputs.version }} | |
| - name: Pack 5 — Core | |
| run: dotnet pack packages/ZibStack.NET.Core/src/ZibStack.NET.Core/ZibStack.NET.Core.csproj -c Release -o ./artifacts -p:PackageVersion=${{ inputs.version }} | |
| - name: Pack 6 — Dto | |
| run: dotnet pack packages/ZibStack.NET.Dto/src/ZibStack.NET.Dto/ZibStack.NET.Dto.csproj -c Release -o ./artifacts -p:PackageVersion=${{ inputs.version }} | |
| - name: Pack 7 — EntityFramework | |
| run: dotnet pack packages/ZibStack.NET.EntityFramework/src/ZibStack.NET.EntityFramework/ZibStack.NET.EntityFramework.csproj -c Release -o ./artifacts -p:PackageVersion=${{ inputs.version }} | |
| - name: Pack 8 — Dapper | |
| run: dotnet pack packages/ZibStack.NET.Dapper/src/ZibStack.NET.Dapper/ZibStack.NET.Dapper.csproj -c Release -o ./artifacts -p:PackageVersion=${{ inputs.version }} | |
| - name: Pack 9 — Result | |
| run: dotnet pack packages/ZibStack.NET.Result/src/ZibStack.NET.Result/ZibStack.NET.Result.csproj -c Release -o ./artifacts -p:PackageVersion=${{ inputs.version }} | |
| - name: Pack 10 — Validation | |
| run: dotnet pack packages/ZibStack.NET.Validation/src/ZibStack.NET.Validation/ZibStack.NET.Validation.csproj -c Release -o ./artifacts -p:PackageVersion=${{ inputs.version }} | |
| - name: Pack 11 — UI | |
| run: dotnet pack packages/ZibStack.NET.UI/src/ZibStack.NET.UI/ZibStack.NET.UI.csproj -c Release -o ./artifacts -p:PackageVersion=${{ inputs.version }} | |
| - name: Pack 12 — Query | |
| run: dotnet pack packages/ZibStack.NET.Query/src/ZibStack.NET.Query/ZibStack.NET.Query.csproj -c Release -o ./artifacts -p:PackageVersion=${{ inputs.version }} | |
| - name: Pack 13 — TypeGen.Abstractions | |
| run: dotnet pack packages/ZibStack.NET.TypeGen/src/ZibStack.NET.TypeGen.Abstractions/ZibStack.NET.TypeGen.Abstractions.csproj -c Release -o ./artifacts -p:PackageVersion=${{ inputs.version }} | |
| - name: Pack 14 — TypeGen | |
| run: dotnet pack packages/ZibStack.NET.TypeGen/src/ZibStack.NET.TypeGen/ZibStack.NET.TypeGen.csproj -c Release -o ./artifacts -p:PackageVersion=${{ inputs.version }} | |
| # Push all at once (NuGet resolves deps from same push) | |
| - name: Push to NuGet | |
| run: dotnet nuget push ./artifacts/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: v${{ inputs.version }} | |
| name: ZibStack.NET v${{ inputs.version }} | |
| generate_release_notes: true | |
| files: ./artifacts/*.nupkg |