Skip to content

Add assembly signing for Microsoft.Data.SqlClient.Extensions.Azure - #4570

Draft
paulmedynski wants to merge 1 commit into
dev/paul/assembly-signing-sqlclientfrom
dev/paul/assembly-signing-azure
Draft

Add assembly signing for Microsoft.Data.SqlClient.Extensions.Azure#4570
paulmedynski wants to merge 1 commit into
dev/paul/assembly-signing-sqlclientfrom
dev/paul/assembly-signing-azure

Conversation

@paulmedynski

Copy link
Copy Markdown
Contributor

Description

Provide a summary of the changes being introduced. Important topics to cover
include:

  • Description of the functionality.
  • API changes, backwards compatibility, deprecations, etc.
  • Documentation, localization.
  • Bug fixes.
  • Code hygiene, refactoring, improvements.
  • Engineering processes (CI, pipelines, test coverage)

High quality descriptions will lead to a smoother review experience.

Issues

Link to any relevant issues, bugs, or discussions (e.g., Closes #123, Fixes issue #456).

Testing

Describe the automated tests (unit, integration) you created or modified.
Provide justification for any gap in automated testing. List any manual testing
steps that were performed to ensure the changes work. 

Guidelines

Please review the contribution guidelines before submitting a pull request:

Copilot AI lite review requested due to automatic review settings August 21, 2026 14:38
@github-project-automation github-project-automation Bot moved this to To triage in SqlClient Board Aug 21, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Enables strong-name signing for the Microsoft.Data.SqlClient.Extensions.Azure assembly in internal CI package-mode builds, including signing the corresponding test assembly to keep InternalsVisibleTo (IVT) working when the product assembly is signed.

Changes:

  • Adds conditional test-assembly signing in Azure.Test.csproj when TestSigningKeyPath is provided.
  • Updates Azure.csproj IVT to include the test public key only for signed + Package reference builds.
  • Threads an isInternalBuild flag through the Azure CI stage/jobs and passes signing key properties to dotnet build/pack; also updates build.proj to pass signing properties to the Azure test invocation.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/Microsoft.Data.SqlClient.Extensions/Azure/test/Azure.Test.csproj Conditionally strong-name signs the test assembly when a test key path is supplied.
src/Microsoft.Data.SqlClient.Extensions/Azure/src/Azure.csproj Adjusts IVT to support signed package-mode builds (public-key IVT only when signing is enabled).
eng/pipelines/stages/build-azure-package-ci-stage.yml Adds and propagates isInternalBuild into Azure build/test/pack job templates.
eng/pipelines/jobs/test-azure-package-ci-job.yml Downloads signing keys and passes SigningKeyPath/TestSigningKeyPath for internal package-mode builds; avoids {command}Arguments env-var injection by renaming the variable.
eng/pipelines/jobs/pack-azure-package-ci-job.yml Adds signing key download and passes SigningKeyPath into dotnet pack for internal package-mode builds.
eng/pipelines/dotnet-sqlclient-ci-core.yml Threads isInternalBuild into the Azure package stage invocation.
build.proj Includes signing-related MSBuild properties when running the Azure test project via build orchestration.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Sign the Azure package and its test assembly on internal Package-mode builds.

Azure references Abstractions and Logging, both of which are signed earlier in
this stack, so the reference closure is complete.

- Thread isInternalBuild from the CI core into the Azure stage, pack job and
  test jobs, downloading the driver and test signing keys as needed.
- Add a signed InternalsVisibleTo grant for the Azure test assembly, which
  needs internal access for the WAM broker tests, and sign that assembly when a
  test key is supplied.
- Thread signing arguments into the build.proj TestAzure target.
- Rename the test job's buildArguments variable to dotnetBuildOpts; Azure
  Pipelines exposes variables as environment variables and the dotnet CLI
  injects BUILDARGUMENTS into dotnet build.
Copilot AI review requested due to automatic review settings August 21, 2026 15:33
@paulmedynski
paulmedynski force-pushed the dev/paul/assembly-signing-azure branch from 5daa1af to 9c13cb9 Compare August 21, 2026 15:33
@paulmedynski paulmedynski added this to the 8.0.0-preview1 milestone Aug 21, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.

@paulmedynski paulmedynski added Area\Engineering Use this for issues that are targeted for changes in the 'eng' folder or build systems. Area\Azure Connectivity Use this to tag issues that are related to Azure connectivity. labels Aug 21, 2026
@paulmedynski paulmedynski moved this from To triage to In progress in SqlClient Board Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area\Azure Connectivity Use this to tag issues that are related to Azure connectivity. Area\Engineering Use this for issues that are targeted for changes in the 'eng' folder or build systems.

Projects

Status: In progress

Development

Successfully merging this pull request may close these issues.

2 participants