Skip to content
Merged
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
a145eaf
Abstractions Package - C# project changes (#3626)
paulmedynski Sep 30, 2025
6720b4a
Abstractions Package - Pipeline Changes (#3628)
paulmedynski Oct 16, 2025
4e2c6b4
Move AAD/Entra Authentication into new Azure package (#3680)
paulmedynski Nov 14, 2025
540c2c6
Removed orphaned project import for GenerateResourceStringsSource.tar…
paulmedynski Nov 17, 2025
6f7f621
Abstractions Package - C# project changes (#3626)
paulmedynski Sep 30, 2025
12a5177
- Replaced parameter NugetPackageVersion with packageVersion.
paulmedynski Nov 17, 2025
b653f18
- Removed duplicate parameter.
paulmedynski Nov 17, 2025
e1906a1
- Addressed all comments/feedback in the PR.
paulmedynski Jan 2, 2026
51fdf03
Merge branch 'feat/azure-split' into dev/paul/azure-split/move-tests
paulmedynski Jan 6, 2026
864a7e9
Fixed compile issues with the previous merge.
paulmedynski Jan 6, 2026
de168e7
- Removed duplicate package version section.
paulmedynski Jan 6, 2026
7bfd4c5
- Addressed Copilot feedback.
paulmedynski Jan 6, 2026
01b6701
- Rolled back a few unnecessary changes that just cluttered up the di…
paulmedynski Jan 7, 2026
69319f8
- Trying to fix CldeQL workflow erros.
paulmedynski Jan 7, 2026
cda0c87
- Removed StressTests from CodeQL analysis for now.
paulmedynski Jan 7, 2026
3665496
- Changed MDS common project to always build all supported target fra…
paulmedynski Jan 9, 2026
9722e43
- Removed obsolete MDS assembly name suffix plumbing.
paulmedynski Jan 9, 2026
1190b1b
Fixed stray MDS assembly name suffix.
paulmedynski Jan 9, 2026
fd7b13c
Added the new unified MDS project's SNI paths to the CopySniDllsForNe…
paulmedynski Jan 10, 2026
2661143
- Removed leftovers from MDS assembly name suffix kludge.
paulmedynski Jan 13, 2026
94ab704
- Fixed missing coverage for integrated security tests.
paulmedynski Jan 13, 2026
ffe7e25
Added local SQL Server config for the jobs that need it.
paulmedynski Jan 14, 2026
1834c69
Trying to make the local SQL Server config the same as the MDS tests.
paulmedynski Jan 14, 2026
1858a2b
Applied @benrr101's suggestions from PR #3717.
paulmedynski Jan 15, 2026
3f14d49
- Merge branch 'feat/azure-split' into dev/paul/azure-split/cleanup
paulmedynski Jan 15, 2026
349bc47
- Fixed stale job names.
paulmedynski Jan 15, 2026
0ddde81
Disabling the failing test for now.
paulmedynski Jan 15, 2026
47dc2aa
Removed unnecessary condition from Azure_UserManagedIdentityTest.
paulmedynski Jan 15, 2026
f9c5bee
Restricting the Azure_UserManagedIdentityTest test to ADO pool agents.
paulmedynski Jan 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 22 additions & 6 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ name: "CodeQL Advanced"

on:
push:
branches: [ "main" ]
branches: [ "main", "feat/*" ]
pull_request:
branches: [ "main" ]
branches: [ "main", "feat/*" ]
schedule:
- cron: '33 23 * * 6'

Expand Down Expand Up @@ -60,9 +60,8 @@ jobs:
- name: Setup .NET Core SDK
uses: actions/setup-dotnet@v5.0.1
with:
# TODO: Update this to .NET 10 once PR #3686 is complete.
# TODO: Replace this with global-json-file once PR #3797 is complete.
dotnet-version: 9.x
dotnet-version: 10.x
dotnet-quality: ga
#global-json-file: global.json

Expand All @@ -88,9 +87,26 @@ jobs:
- name: Run manual build steps
if: matrix.build-mode == 'manual'
shell: bash
# TODO(https://sqlclientdrivers.visualstudio.com/ADO.Net/_workitems/edit/38655):
# For some reason, the StressTests projects fail to restore in this
# environment, so we skip them by explicitly building all of the other
# projects instead of the main solution file.
run: |
mkdir packages
dotnet build src/
dotnet build src/Microsoft.SqlServer.Server
dotnet build src/Microsoft.Data.SqlClient.Extensions/Abstractions/src
dotnet build src/Microsoft.Data.SqlClient.Extensions/Abstractions/test
dotnet build src/Microsoft.Data.SqlClient/netcore/ref
dotnet build src/Microsoft.Data.SqlClient/netcore/src
dotnet build src/Microsoft.Data.SqlClient/netfx/ref
dotnet build src/Microsoft.Data.SqlClient/netfx/src
dotnet build src/Microsoft.Data.SqlClient/src
dotnet build src/Microsoft.Data.SqlClient.Extensions/Azure/src
dotnet build src/Microsoft.Data.SqlClient.Extensions/Azure/test
dotnet build src/Microsoft.Data.SqlClient/add-ons/AzureKeyVaultProvider
dotnet build src/Microsoft.Data.SqlClient/tests/UnitTests
dotnet build src/Microsoft.Data.SqlClient/tests/FunctionalTests
dotnet build src/Microsoft.Data.SqlClient/tests/ManualTests
dotnet build src/Microsoft.Data.SqlClient/tests/PerformanceTests

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4
Expand Down
5 changes: 5 additions & 0 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,11 @@

<!-- None -->

<!-- ===================================================================== -->
<!-- Abstractions Dependencies -->

<!-- None -->

<!-- ===================================================================== -->
<!-- MDS Dependencies -->

Expand Down
2 changes: 1 addition & 1 deletion build.proj
Original file line number Diff line number Diff line change
Expand Up @@ -489,7 +489,7 @@
<TestCommand>$(TestCommand.Replace($([System.Environment]::NewLine), " "))</TestCommand>
</PropertyGroup>
<Message Text=">>> Running Manual test for Windows via command: $(TestCommand)" />
<Exec ConsoleToMsBuild="true" Command="$(TestCommand)" />

Check failure on line 492 in build.proj

View check run for this annotation

Azure Pipelines / PR-SqlClient-Project (Win22_Sql19_x86 net8_0_AnyCPU_NativeSNI_3)

build.proj#L492

build.proj(492,5): Error MSB3073: The command " C:\x86\dotnet test "src\Microsoft.Data.SqlClient\tests\ManualTests\Microsoft.Data.SqlClient.ManualTesting.Tests.csproj" --no-build -v n -p:Configuration=Debug -p:TargetnetcoreVersion=net8.0 -p:ReferenceType=Project -p:TestSet=3 -p:TestTargetOS=Windowsnetcoreapp --collect "Code coverage" --results-directory TestResults --filter "category!=nonnetcoreapptests&category!=failing&category!=nonwindowstests" --logger:"trx;LogFilePrefix=Manual-Windowsnetcoreapp-3" " exited with code 1.
</Target>

<!-- Run all Manual tests applicable to Unix. -->
Expand Down Expand Up @@ -521,7 +521,7 @@
<RemoveDir Directories='$([System.IO.Directory]::GetDirectories(".", "bin", SearchOption.AllDirectories))' />
<RemoveDir Directories='$([System.IO.Directory]::GetDirectories(".", ".nuget", SearchOption.AllDirectories))' />
<RemoveDir Directories='$([System.IO.Directory]::GetDirectories(".", "obj", SearchOption.AllDirectories))' />
</Target>
</Target>
Comment thread
paulmedynski marked this conversation as resolved.

<!-- AKV Targets ========================================================= -->
<Target Name="BuildAkv">
Expand Down
2 changes: 1 addition & 1 deletion eng/pipelines/akv-official-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ resources:
ref: 'refs/heads/main'

extends:
template: 'v2/OneBranch.${{ parameters.oneBranchType }}.CrossPlat.yml@templates'
template: /v2/OneBranch.${{ parameters.oneBranchType }}.CrossPlat.yml@templates

parameters:
featureFlags:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@
# Reason for not using UseDotNet task:
# [BUG]: UseDotNet task installs x86 build on Windows arm64
# https://github.com/microsoft/azure-pipelines-tasks/issues/20300
#
# A possible workaround is discussed here:
#
# https://github.com/microsoft/azure-pipelines-tasks/issues/16501
#
# TODO: See if we can eliminate this template and just use the above workaround
# for the Windows x86 builds.

parameters:
- # Directory where dotnet binaries should be installed. If not specified, defaults to the
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,10 @@ parameters:
type: boolean
default: true

- name: WorkloadIdentityFederationServiceConnectionId
type: string
default: ''

steps:
# All properties should be added here, and this template should be used for any manipulation of the config.json file.
- pwsh: |
Expand Down Expand Up @@ -180,6 +184,7 @@ steps:
$p.IsDNSCachingSupportedCR=[System.Convert]::ToBoolean("${{parameters.IsDNSCachingSupportedCR }}")
$p.TracingEnabled=[System.Convert]::ToBoolean("${{parameters.TracingEnabled }}")
$p.EnclaveEnabled=[System.Convert]::ToBoolean("${{parameters.EnclaveEnabled }}")
$p.WorkloadIdentityFederationServiceConnectionId="${{parameters.WorkloadIdentityFederationServiceConnectionId }}"
}
$jdata | ConvertTo-Json | Set-Content "config.json"
workingDirectory: src/Microsoft.Data.SqlClient/tests/tools/Microsoft.Data.SqlClient.TestUtilities
Expand All @@ -196,4 +201,4 @@ steps:
}
}
workingDirectory: src/Microsoft.Data.SqlClient/tests/tools/Microsoft.Data.SqlClient.TestUtilities
displayName: 'Read config.json [debug]'
displayName: '[Debug] Read config.json'
35 changes: 26 additions & 9 deletions eng/pipelines/dotnet-sqlclient-ci-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,17 @@ parameters:
type: boolean
default: true

- name: dotnetVerbosity
displayName: dotnet CLI Verbosity
type: string
default: normal
values:
- quiet
- minimal
- normal
- detailed
- diagnostic

variables:
- template: /eng/pipelines/libraries/ci-build-variables.yml@self

Expand All @@ -121,11 +132,11 @@ stages:
# under the given artifact name.
- template: /eng/pipelines/stages/build-abstractions-package-ci-stage.yml@self
parameters:
buildConfiguration: ${{ parameters.buildConfiguration }}
abstractionsArtifactName: $(abstractionsArtifactName)
abstractionsPackageVersion: $(abstractionsPackageVersion)
artifactName: $(abstractionsArtifactName)
${{if eq(parameters.debug, 'true')}}:
verbosity: diagnostic
buildConfiguration: ${{ parameters.buildConfiguration }}
debug: ${{ parameters.debug }}
dotnetVerbosity: ${{ parameters.dotnetVerbosity }}

# Build MDS and its NuGet packages.
- stage: build_mds_akv_packages_stage
Expand Down Expand Up @@ -164,25 +175,31 @@ stages:
azureArtifactName: $(azureArtifactName)
azurePackageVersion: $(azurePackageVersion)
buildConfiguration: ${{ parameters.buildConfiguration }}
debug: ${{ parameters.debug }}
mdsArtifactName: $(mdsArtifactName)
mdsPackageVersion: $(mdsPackageVersion)
# When building via package references, we must depend on the Abstractions
# package.
# and MDS packages
${{ if eq(parameters.referenceType, 'Package') }}:
dependsOn:
- build_abstractions_package_stage
- build_mds_akv_packages_stage
referenceType: ${{ parameters.referenceType }}
${{if eq(parameters.debug, 'true')}}:
verbosity: diagnostic
dotnetVerbosity: diagnostic

# Run the stress tests, if desired.
- ${{ if eq(parameters.enableStressTests, true) }}:
- template: /eng/pipelines/stages/stress-tests-ci-stage.yml@self
parameters:
buildConfiguration: ${{ parameters.buildConfiguration }}
dependsOn: [build_mds_akv_packages_stage]
dependsOn:
- build_mds_akv_packages_stage
- build_azure_package_stage
pipelineArtifactName: $(artifactName)
mdsPackageVersion: $(mdsPackageVersion)
${{ if eq(parameters.debug, 'true') }}:
verbosity: 'detailed'
azurePackageVersion: $(azurePackageVersion)
dotnetVerbosity: ${{ parameters.dotnetVerbosity }}

# Run the MDS and AKV tests.
- template: /eng/pipelines/common/templates/stages/ci-run-tests-stage.yml@self
Expand Down
15 changes: 14 additions & 1 deletion eng/pipelines/dotnet-sqlclient-ci-package-reference-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -168,14 +168,27 @@ parameters:
type: object
default: [false, true]

# Dotnet CLI verbosity level.
- name: dotnetVerbosity
displayName: dotnet CLI Verbosity
type: string
default: normal
values:
- quiet
- minimal
- normal
- detailed
- diagnostic

extends:
template: dotnet-sqlclient-ci-core.yml@self
template: /eng/pipelines/dotnet-sqlclient-ci-core.yml@self
parameters:
buildConfiguration: ${{ parameters.buildConfiguration }}
buildPlatforms: ${{ parameters.buildPlatforms }}
referenceType: Package
codeCovTargetFrameworks: ${{ parameters.codeCovTargetFrameworks }}
debug: ${{ parameters.debug }}
dotnetVerbosity: ${{ parameters.dotnetVerbosity }}
enableStressTests: ${{ parameters.enableStressTests }}
targetFrameworks: ${{ parameters.targetFrameworks }}
targetFrameworksUnix: ${{ parameters.targetFrameworksUnix }}
Expand Down
15 changes: 14 additions & 1 deletion eng/pipelines/dotnet-sqlclient-ci-project-reference-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -168,14 +168,27 @@ parameters:
type: object
default: [false, true]

# Dotnet CLI verbosity level.
- name: dotnetVerbosity
displayName: dotnet CLI Verbosity
type: string
default: normal
values:
- quiet
- minimal
- normal
- detailed
- diagnostic

extends:
template: dotnet-sqlclient-ci-core.yml@self
template: /eng/pipelines/dotnet-sqlclient-ci-core.yml@self
parameters:
buildConfiguration: ${{ parameters.buildConfiguration }}
buildPlatforms: ${{ parameters.buildPlatforms }}
referenceType: Project
codeCovTargetFrameworks: ${{ parameters.codeCovTargetFrameworks }}
debug: ${{ parameters.debug }}
dotnetVerbosity: ${{ parameters.dotnetVerbosity }}
enableStressTests: ${{ parameters.enableStressTests }}
targetFrameworks: ${{ parameters.targetFrameworks }}
targetFrameworksUnix: ${{ parameters.targetFrameworksUnix }}
Expand Down
2 changes: 1 addition & 1 deletion eng/pipelines/dotnet-sqlclient-signing-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ resources:
ref: refs/heads/main

extends:
template: v2/OneBranch.${{parameters.oneBranchType }}.CrossPlat.yml@templates # https://aka.ms/obpipelines/templates
template: /v2/OneBranch.${{parameters.oneBranchType }}.CrossPlat.yml@templates # https://aka.ms/obpipelines/templates
parameters:
featureFlags:
# Suggested by MerlinBot (https://sqlclientdrivers.visualstudio.com/ADO.Net/_git/dotnet-sqlclient/pullrequest/4882)
Expand Down
34 changes: 22 additions & 12 deletions eng/pipelines/jobs/pack-abstractions-package-ci-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,29 +12,34 @@

parameters:

# The version to apply to the Abstractions NuGet package and its assemblies.
- name: abstractionsPackageVersion
type: string

# The name to apply to the published pipeline artifact.
- name: artifactName
- name: abstractionsArtifactName
type: string
default: Abstractions.Artifact

# The version to apply to the Abstractions NuGet package and its assemblies.
- name: abstractionsPackageVersion
type: string

# The type of build to test (Release or Debug)
- name: buildConfiguration
type: string
values:
- Release
- Debug

# True to enable extra debug steps and logging.
- name: debug
type: boolean
default: false

# The list of upstream jobs to depend on.
- name: dependsOn
type: object
default: []

# The verbosity level for the dotnet CLI commands.
- name: verbosity
- name: dotnetVerbosity
type: string
default: normal
values:
Expand Down Expand Up @@ -69,7 +74,7 @@ jobs:
# dotnet CLI arguments common to all commands.
- name: commonArguments
value: >-
--verbosity ${{ parameters.verbosity }}
--verbosity ${{ parameters.dotnetVerbosity }}

# dotnet CLI arguments for build/test/pack commands
- name: buildArguments
Expand Down Expand Up @@ -102,6 +107,11 @@ jobs:

steps:

# Emit environment variables if debug is enabled.
- ${{ if eq(parameters.debug, true) }}:
- pwsh: 'Get-ChildItem Env: | Sort-Object Name'
displayName: '[Debug] Print Environment Variables'

# Install the .NET 10.0 SDK.
- task: UseDotNet@2
displayName: Install .NET 10.0 SDK
Expand All @@ -112,18 +122,18 @@ jobs:
# We use the 'custom' command because the DotNetCoreCLI@2 task doesn't
# support all of our argument combinations for the different build steps.

# Restore the solution.
# Restore the project.
- task: DotNetCoreCLI@2
displayName: Restore Solution
displayName: Restore Project
inputs:
command: custom
custom: restore
projects: $(project)
arguments: $(commonArguments)

# Build the solution.
# Build the project.
- task: DotNetCoreCLI@2
displayName: Build Solution
displayName: Build Project
inputs:
command: custom
custom: build
Expand All @@ -144,5 +154,5 @@ jobs:
displayName: Publish Pipeline Artifact
inputs:
targetPath: $(dotnetPackagesDir)
artifactName: ${{ parameters.artifactName }}
artifactName: ${{ parameters.abstractionsArtifactName }}
publishLocation: pipeline
Loading
Loading