From c9ca70a48eca155ee19124e7ddaacf1e58512054 Mon Sep 17 00:00:00 2001 From: max-ieremenko <> Date: Sun, 30 Aug 2026 12:54:05 +0200 Subject: [PATCH] dotnet pack .sln --- Build/invoke-artifacts-build.ps1 | 1 + Build/scripts/Test-NugetPackageList.ps1 | 24 +++++++++++++++++ Build/tasks/task-pack.ps1 | 35 +++++++++++++++---------- 3 files changed, 46 insertions(+), 14 deletions(-) create mode 100644 Build/scripts/Test-NugetPackageList.ps1 diff --git a/Build/invoke-artifacts-build.ps1 b/Build/invoke-artifacts-build.ps1 index 012f7499..b0796582 100644 --- a/Build/invoke-artifacts-build.ps1 +++ b/Build/invoke-artifacts-build.ps1 @@ -21,6 +21,7 @@ Set-StrictMode -Version Latest . (Join-Path $PSScriptRoot 'scripts' 'Merge-NugetPackages.ps1') . (Join-Path $PSScriptRoot 'scripts' 'Remove-DirectoryRecurse.ps1') . (Join-Path $PSScriptRoot 'scripts' 'Test-NugetPackage.ps1') +. (Join-Path $PSScriptRoot 'scripts' 'Test-NugetPackageList.ps1') . (Join-Path $PSScriptRoot 'scripts' 'Write-ThirdPartyNotices.ps1') Invoke-Build ` diff --git a/Build/scripts/Test-NugetPackageList.ps1 b/Build/scripts/Test-NugetPackageList.ps1 new file mode 100644 index 00000000..d55aef8f --- /dev/null +++ b/Build/scripts/Test-NugetPackageList.ps1 @@ -0,0 +1,24 @@ +function Test-NugetPackageList { + param ( + [Parameter(Mandatory)] + [string[]] + $Name, + + [Parameter(Mandatory)] + [ValidateScript({ Test-Path $_ -PathType Container })] + [string] + $BuildOut + ) + + $found = New-Object -TypeName System.Collections.Generic.HashSet[string] + foreach ($file in (Get-ChildItem -Path $BuildOut -Filter '*.*nupkg' -File)) { + $found.Add($file.Name) | Out-Null + } + + foreach ($expected in $Name) { + assert $found.Remove("$expected.nupkg") "$expected.nupkg not found" + assert $found.Remove("$expected.snupkg") "$expected.snupkg not found" + } + + assert (-not $found.Count) "found unxpected $($found.Count) NuGets" +} \ No newline at end of file diff --git a/Build/tasks/task-pack.ps1 b/Build/tasks/task-pack.ps1 index e8f257b5..bb89b721 100644 --- a/Build/tasks/task-pack.ps1 +++ b/Build/tasks/task-pack.ps1 @@ -15,23 +15,30 @@ Enter-Build { $releaseVersion = Get-ReleaseVersion -Sources $Sources } -task . DotnetPack, JoinServiceModelGrpc, JoinServiceModelGrpcEmit, DesignTimeILMerge, Test +task . DotnetPack, TestDotnetPack, JoinServiceModelGrpc, JoinServiceModelGrpcEmit, DesignTimeILMerge, Test task DotnetPack { - $projects = @() - foreach ($file in (Get-ChildItem -Path $Sources -Recurse -Filter *.csproj)) { - $test = Select-Xml -Path $file -XPath 'Project/PropertyGroup/IsPackable' - if ($test -and $test.Node.InnerText -eq 'true') { - $projects += $file.FullName - } - } - - $builds = @() - foreach ($project in $projects) { - $builds += @{ File = 'task-dotnet-pack.ps1'; ProjectFile = $project; BuildOut = $BuildOut } - } + Invoke-Build -File 'task-dotnet-pack.ps1' -ProjectFile $Sources -BuildOut $BuildOut +} - Build-Parallel $builds -ShowParameter ProjectFile -MaximumBuilds 1 +task TestDotnetPack { + Test-NugetPackageList -BuildOut $BuildOut -Name ` + "ServiceModel.Grpc.$releaseVersion" ` + , "ServiceModel.Grpc.AspNetCore.$releaseVersion" ` + , "ServiceModel.Grpc.AspNetCore.NSwag.$releaseVersion" ` + , "ServiceModel.Grpc.AspNetCore.Swashbuckle.$releaseVersion" ` + , "ServiceModel.Grpc.Client.DependencyInjection.$releaseVersion" ` + , "ServiceModel.Grpc.Core.$releaseVersion" ` + , "ServiceModel.Grpc.Descriptions.$releaseVersion" ` + , "ServiceModel.Grpc.DesignTime.$releaseVersion" ` + , "ServiceModel.Grpc.Emit.$releaseVersion" ` + , "ServiceModel.Grpc.Filters.$releaseVersion" ` + , "ServiceModel.Grpc.Interceptors.$releaseVersion" ` + , "ServiceModel.Grpc.MemoryPackMarshaller.$releaseVersion" ` + , "ServiceModel.Grpc.MessagePackMarshaller.$releaseVersion" ` + , "ServiceModel.Grpc.Nerdbank.MessagePackMarshaller.$releaseVersion" ` + , "ServiceModel.Grpc.ProtoBufMarshaller.$releaseVersion" ` + , "ServiceModel.Grpc.SelfHost.$releaseVersion" } task JoinServiceModelGrpc {