From 87ba069783dfa7996b37315279a93318581b84b1 Mon Sep 17 00:00:00 2001 From: Paul Medynski <31868385+paulmedynski@users.noreply.github.com> Date: Fri, 19 Jun 2026 13:04:36 -0300 Subject: [PATCH] Sign the SqlServer.Server assembly and wire its package CI Align the signing comment with the assembly-signing terminology and wire the SqlServer.Server package CI stage/job for signed internal builds. --- eng/pipelines/dotnet-sqlclient-ci-core.yml | 2 ++ .../jobs/pack-sqlserver-package-ci-job.yml | 27 ++++++++++++++++++- .../build-sqlserver-package-ci-stage.yml | 15 +++++++++++ .../Microsoft.SqlServer.Server.csproj | 2 +- 4 files changed, 44 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/dotnet-sqlclient-ci-core.yml b/eng/pipelines/dotnet-sqlclient-ci-core.yml index 5361407e0d..ae81df32b9 100644 --- a/eng/pipelines/dotnet-sqlclient-ci-core.yml +++ b/eng/pipelines/dotnet-sqlclient-ci-core.yml @@ -144,6 +144,8 @@ stages: buildConfiguration: ${{ parameters.buildConfiguration }} debug: ${{ parameters.debug }} dotnetVerbosity: ${{ parameters.dotnetVerbosity }} + isInternalBuild: ${{ parameters.isInternalBuild }} + referenceType: ${{ parameters.referenceType }} # Build the Logging package, and publish it to the pipeline artifacts # under the given artifact name. This runs in parallel with the Secrets diff --git a/eng/pipelines/jobs/pack-sqlserver-package-ci-job.yml b/eng/pipelines/jobs/pack-sqlserver-package-ci-job.yml index 6b19e8c154..8684d474ac 100644 --- a/eng/pipelines/jobs/pack-sqlserver-package-ci-job.yml +++ b/eng/pipelines/jobs/pack-sqlserver-package-ci-job.yml @@ -49,6 +49,19 @@ parameters: - detailed - diagnostic + # The C# project reference type to use when building and packing the packages. + - name: referenceType + type: string + default: Project + values: + - Package + - Project + + # True when building on the internal ADO.Net project. + - name: isInternalBuild + type: boolean + default: false + jobs: - job: pack_sqlserver_package_job @@ -82,6 +95,14 @@ jobs: - name: Configuration value: '' + # Build properties passed to dotnet pack. Composed from a base set plus + # optional signing key path for internal Package-mode builds. + - name: buildProperties + ${{ if and(eq(parameters.isInternalBuild, true), ne(parameters.referenceType, 'Project')) }}: + value: SqlServerPackageVersion=${{ parameters.sqlServerPackageVersion }};SigningKeyPath=$(driverKeyFile.secureFilePath) + ${{ else }}: + value: SqlServerPackageVersion=${{ parameters.sqlServerPackageVersion }} + steps: # Emit environment variables if debug is enabled. @@ -94,6 +115,10 @@ jobs: parameters: debug: ${{ parameters.debug }} + # Download the assembly signing key for internal Package-mode builds. + - ${{ if and(eq(parameters.isInternalBuild, true), ne(parameters.referenceType, 'Project')) }}: + - template: /eng/pipelines/common/steps/download-assembly-signing-key.yml@self + # Create the NuGet packages. - task: DotNetCoreCLI@2 displayName: Create NuGet Package @@ -103,7 +128,7 @@ jobs: configurationToPack: ${{ parameters.buildConfiguration }} packDirectory: $(dotnetPackagesDir) verbosityToPack: ${{ parameters.dotnetVerbosity }} - buildProperties: SqlServerPackageVersion=${{ parameters.sqlServerPackageVersion }} + buildProperties: $(buildProperties) - task: PublishPipelineArtifact@1 displayName: Publish Pipeline Artifact diff --git a/eng/pipelines/stages/build-sqlserver-package-ci-stage.yml b/eng/pipelines/stages/build-sqlserver-package-ci-stage.yml index 1711725373..e08fbba531 100644 --- a/eng/pipelines/stages/build-sqlserver-package-ci-stage.yml +++ b/eng/pipelines/stages/build-sqlserver-package-ci-stage.yml @@ -63,6 +63,19 @@ parameters: - detailed - diagnostic + # True when building on the internal ADO.Net project. + - name: isInternalBuild + type: boolean + default: false + + # The C# project reference type to use when building and packing the packages. + - name: referenceType + type: string + default: Project + values: + - Package + - Project + stages: - stage: build_sqlserver_package_stage @@ -81,3 +94,5 @@ stages: sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }} sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }} dotnetVerbosity: ${{ parameters.dotnetVerbosity }} + isInternalBuild: ${{ parameters.isInternalBuild }} + referenceType: ${{ parameters.referenceType }} diff --git a/src/Microsoft.SqlServer.Server/Microsoft.SqlServer.Server.csproj b/src/Microsoft.SqlServer.Server/Microsoft.SqlServer.Server.csproj index a995fa13b9..6769c42328 100644 --- a/src/Microsoft.SqlServer.Server/Microsoft.SqlServer.Server.csproj +++ b/src/Microsoft.SqlServer.Server/Microsoft.SqlServer.Server.csproj @@ -16,7 +16,7 @@ $(SqlServerPackageVersion) - +