From 77d8d7492cd12a79ee63c33bd607ce66d9e8d737 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Chalet?= Date: Sat, 3 Jun 2023 16:25:55 +0200 Subject: [PATCH] Enable packages validation --- .github/workflows/build.yml | 34 ++++++++++++-- Directory.Build.props | 5 +++ OpenIddict.sln | 1 + eng/CompatibilitySuppressions.xml | 75 +++++++++++++++++++++++++++++++ eng/Versions.props | 1 + 5 files changed, 113 insertions(+), 3 deletions(-) create mode 100644 eng/CompatibilitySuppressions.xml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cb6bf5ff..5f7135d0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -98,9 +98,37 @@ jobs: name: testresults-${{ matrix.os_name }} path: ./artifacts/TestResults/Release - push-myget: + validate-packages: needs: build runs-on: ubuntu-latest + steps: + - name: Download packages + uses: actions/download-artifact@v3 + with: + name: packages-windows + + - name: Setup .NET + uses: actions/setup-dotnet@v3 + + - name: Validate NuGet packages + shell: pwsh + run: | + dotnet tool install --global dotnet-validate --version 0.0.1-preview.304 + $packages = Get-ChildItem -Filter "*.nupkg" | ForEach-Object { $_.FullName } + $invalidPackages = 0 + foreach ($package in $packages) { + dotnet validate package local $package + if ($LASTEXITCODE -ne 0) { + $invalidPackages++ + } + } + if ($invalidPackages -gt 0) { + Write-Output "::error::$invalidPackages NuGet package(s) failed validation." + } + + push-packages-myget: + needs: validate-packages + runs-on: ubuntu-latest if: | github.event.repository.fork == false && (github.ref == 'refs/heads/dev' || startsWith(github.ref, 'refs/heads/rel/') || startsWith(github.ref, 'refs/tags/')) @@ -116,8 +144,8 @@ jobs: - name: Push packages to MyGet.org run: nuget push "*.nupkg" -ApiKey ${{ secrets.MYGET_API_KEY }} -SkipDuplicate -Source https://www.myget.org/F/openiddict/api/v3/index.json - push-nuget: - needs: build + push-packages-nuget: + needs: validate-packages runs-on: ubuntu-latest if: github.event.repository.fork == false && startsWith(github.ref, 'refs/tags/') steps: diff --git a/Directory.Build.props b/Directory.Build.props index 454a2e1a..3da34375 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -60,12 +60,17 @@ true + true true true true false + + + + true diff --git a/OpenIddict.sln b/OpenIddict.sln index 8139285f..03be0aba 100644 --- a/OpenIddict.sln +++ b/OpenIddict.sln @@ -60,6 +60,7 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "eng", "eng", "{6E8E862C-3F26-47D9-9C20-E3E87FD7CDFC}" ProjectSection(SolutionItems) = preProject eng\CodeAnalysis.ruleset = eng\CodeAnalysis.ruleset + eng\CompatibilitySuppressions.xml = eng\CompatibilitySuppressions.xml eng\key.snk = eng\key.snk eng\Signing.props = eng\Signing.props eng\Tools.props = eng\Tools.props diff --git a/eng/CompatibilitySuppressions.xml b/eng/CompatibilitySuppressions.xml new file mode 100644 index 00000000..654c2a4d --- /dev/null +++ b/eng/CompatibilitySuppressions.xml @@ -0,0 +1,75 @@ + + + CP0002 + M:OpenIddict.Client.WebIntegration.OpenIddictClientWebIntegrationConfiguration.#ctor + lib/net6.0/OpenIddict.Client.WebIntegration.dll + lib/net6.0/OpenIddict.Client.WebIntegration.dll + true + + + + CP0002 + M:OpenIddict.Client.WebIntegration.OpenIddictClientWebIntegrationConfiguration.#ctor + lib/net7.0/OpenIddict.Client.WebIntegration.dll + lib/net7.0/OpenIddict.Client.WebIntegration.dll + true + + + + CP0002 + M:OpenIddict.Client.SystemIntegration.OpenIddictClientSystemIntegrationHelpers.GetWebAuthenticationResult(OpenIddict.Client.OpenIddictClientTransaction) + lib/netcoreapp3.1/OpenIddict.Client.SystemIntegration.dll + lib/net6.0-windows7.0/OpenIddict.Client.SystemIntegration.dll + + + + CP0002 + M:OpenIddict.Client.SystemIntegration.OpenIddictClientSystemIntegrationHelpers.GetWebAuthenticationResult(OpenIddict.Client.OpenIddictClientTransaction) + lib/netcoreapp3.1/OpenIddict.Client.SystemIntegration.dll + lib/net6.0/OpenIddict.Client.SystemIntegration.dll + + + + CP0002 + M:OpenIddict.Client.WebIntegration.OpenIddictClientWebIntegrationConfiguration.#ctor + lib/netcoreapp3.1/OpenIddict.Client.WebIntegration.dll + lib/netcoreapp3.1/OpenIddict.Client.WebIntegration.dll + true + + + + CP0002 + M:OpenIddict.Client.SystemIntegration.OpenIddictClientSystemIntegrationConfiguration.#ctor(Microsoft.Extensions.Hosting.IHostingEnvironment) + lib/netstandard2.0/OpenIddict.Client.SystemIntegration.dll + lib/netcoreapp3.1/OpenIddict.Client.SystemIntegration.dll + + + + CP0002 + M:OpenIddict.Client.SystemIntegration.OpenIddictClientSystemIntegrationHandlers.AbortAuthenticationDemand.#ctor(OpenIddict.Client.SystemIntegration.OpenIddictClientSystemIntegrationMarshal,Microsoft.Extensions.Hosting.IApplicationLifetime) + lib/netstandard2.0/OpenIddict.Client.SystemIntegration.dll + lib/netcoreapp3.1/OpenIddict.Client.SystemIntegration.dll + + + + CP0002 + M:OpenIddict.Client.SystemIntegration.OpenIddictClientSystemIntegrationHandlers.RedirectProtocolActivation.#ctor(Microsoft.Extensions.Hosting.IApplicationLifetime,Microsoft.Extensions.Options.IOptionsMonitor{OpenIddict.Client.SystemIntegration.OpenIddictClientSystemIntegrationOptions},OpenIddict.Client.SystemIntegration.OpenIddictClientSystemIntegrationService) + lib/netstandard2.0/OpenIddict.Client.SystemIntegration.dll + lib/netcoreapp3.1/OpenIddict.Client.SystemIntegration.dll + + + + CP0002 + M:OpenIddict.Client.WebIntegration.OpenIddictClientWebIntegrationConfiguration.#ctor(System.IServiceProvider) + lib/netstandard2.0/OpenIddict.Client.WebIntegration.dll + lib/netstandard2.1/OpenIddict.Client.WebIntegration.dll + + + + CP0002 + M:OpenIddict.Client.WebIntegration.OpenIddictClientWebIntegrationConfiguration.#ctor + lib/netstandard2.1/OpenIddict.Client.WebIntegration.dll + lib/netstandard2.1/OpenIddict.Client.WebIntegration.dll + true + + \ No newline at end of file diff --git a/eng/Versions.props b/eng/Versions.props index dd792845..61df2f8d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -5,6 +5,7 @@ 5 0 $(MajorVersion).$(MinorVersion).$(PatchVersion) + 4.4.0 preview1 Preview 1