2929 outputs :
3030 dotnet-sdk-version : ${{ steps.setup-dotnet.outputs.dotnet-version }}
3131 dotnet-validate-version : ${{ steps.get-dotnet-tools-versions.outputs.dotnet-validate-version }}
32+ nuget-package-validation-version : ${{ steps.get-dotnet-tools-versions.outputs.nuget-package-validation-version }}
3233 package-names : ${{ steps.build.outputs.package-names }}
3334 package-version : ${{ steps.build.outputs.package-version }}
3435
@@ -148,7 +149,9 @@ jobs:
148149 run : |
149150 $manifest = (Get-Content "./.config/dotnet-tools.json" | Out-String | ConvertFrom-Json)
150151 $dotnetValidateVersion = $manifest.tools.'dotnet-validate'.version
151- "dotnet-validate-version=${dotnetValidateVersion}" >> $env:GITHUB_OUTPUT
152+ $nugetPackageValidationVersion = $manifest.tools.'meziantou.framework.nugetpackagevalidation.tool'.version
153+ "dotnet-validate-version=${dotnetValidateVersion}" >> ${env:GITHUB_OUTPUT}
154+ "nuget-package-validation-version=${nugetPackageValidationVersion}" >> ${env:GITHUB_OUTPUT}
152155
153156 validate-packages :
154157 needs : build
@@ -165,17 +168,33 @@ jobs:
165168 with :
166169 dotnet-version : ${{ needs.build.outputs.dotnet-sdk-version }}
167170
168- - name : Validate NuGet packages
171+ - name : Install NuGet package validation tools
169172 shell : pwsh
170173 env :
171174 DOTNET_VALIDATE_VERSION : ${{ needs.build.outputs.dotnet-validate-version }}
175+ NUGET_PACKAGE_VALIDATION_VERSION : ${{ needs.build.outputs.nuget-package-validation-version }}
172176 run : |
173177 dotnet tool install --global dotnet-validate --version ${env:DOTNET_VALIDATE_VERSION} --allow-roll-forward
178+ dotnet tool install --global Meziantou.Framework.NuGetPackageValidation.Tool --version ${env:NUGET_PACKAGE_VALIDATION_VERSION} --allow-roll-forward
179+
180+ - name : Validate NuGet packages
181+ shell : pwsh
182+ env :
183+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
184+ run : |
174185 $packages = Get-ChildItem -Filter "*.nupkg" | ForEach-Object { $_.FullName }
175186 $invalidPackages = 0
176187 foreach ($package in $packages) {
188+ $isValid = $true
177189 dotnet validate package local $package
178190 if ($LASTEXITCODE -ne 0) {
191+ $isValid = $false
192+ }
193+ meziantou.validate-nuget-package $package --github-token ${env:GH_TOKEN} --excluded-rules IconMustBeSet
194+ if ($LASTEXITCODE -ne 0) {
195+ $isValid = $false
196+ }
197+ if (-Not $isValid) {
179198 $invalidPackages++
180199 }
181200 }
0 commit comments