Skip to content

[7.0] Create stress test pipeline#4118

Draft
paulmedynski wants to merge 1 commit intocherry-pick/7.0/4087from
cherry-pick/7.0/3867
Draft

[7.0] Create stress test pipeline#4118
paulmedynski wants to merge 1 commit intocherry-pick/7.0/4087from
cherry-pick/7.0/3867

Conversation

@paulmedynski
Copy link
Copy Markdown
Contributor

@paulmedynski paulmedynski commented Mar 31, 2026

Cherry-pick of #3867 to release/7.0

Depends on #4115


Original PR Description

Description

This PR adds a dedicated stress pipeline, and removes stress testing from all other pipelines. The new pipeline is triggered by successful runs of the PR/CI project-reference pipelines. It will not prevent PRs from merging.

Testing

We won't be able to test this new pipeline due to limitations in Azure DevOps that require the YAML file exist on the default branch before you can create a pipeline. So we expect a follow-up PR to fine-tune things once the new stress-tests-pipeline.yml file merges to main.

* Task 40503: Create stress test pipeline

- Added initial placeholder pipeline entry point file.
- Wired up the new top-level stress test pipeline to the existing stages/jobs.
- Using human friendly triggering pipeline names.
- Removed PR pipeline as upstream trigger.
- When triggered manually, we must choose one of the upstream pipelines to use for artifact download.
- Temporarily added PR-SqlClient-Package to help with PR-based testing.
- Sorted template parameters alphabetically.
- Added debugging for artifact details.

* Changed the pipeline to expect project-references to SqlClient projects.

* Moved stress test pipeline files into a stress/ directory.

* Fixed expansion errors.

* Addressed Copilot feedback.

* Addressed my own comments.
Copilot AI review requested due to automatic review settings March 31, 2026 19:30
@github-project-automation github-project-automation bot moved this to To triage in SqlClient Board Mar 31, 2026
@paulmedynski paulmedynski changed the base branch from release/7.0 to cherry-pick/7.0/4087 March 31, 2026 19:32
@paulmedynski paulmedynski added this to the 7.0.1 milestone Mar 31, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR introduces a dedicated Azure DevOps stress-test pipeline triggered by successful PR/CI project-reference runs, while removing stress testing hooks from the existing PR/CI pipelines. It also includes related build/packaging refactors (notably MDS versioning/output-path changes) required to support the updated pipeline and artifact layout.

Changes:

  • Add new stress pipeline + stage/job templates under eng/pipelines/stress/, triggered via pipeline resources (and remove the old placeholder stress pipeline/stage/job).
  • Refactor MDS versioning into src/Microsoft.Data.SqlClient/MdsVersions.props and update csproj output paths + nuspec packing paths accordingly.
  • Enable/refine XML doc generation + trimming and fix multiple DocFX <include> path references.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tools/targets/GenerateThisAssemblyCs.targets Default AssemblyFileVersion to AssemblyVersion when not provided.
tools/specs/Microsoft.Data.SqlClient.nuspec Update packaged file paths to new artifacts layout; reorganize lib/ref/runtime assets.
tools/props/Versions.props Remove in-file MDS versioning block; defer to MdsVersions.props.
tools/intellisense/TrimDocs.ps1 Fail fast on missing XML input (throw + $ErrorActionPreference='Stop').
src/Microsoft.Data.SqlClient/tests/StressTests/StressTests.slnx Remove the .slnx solution file.
src/Microsoft.Data.SqlClient/tests/StressTests/Readme.md Update stress test build/run guidance (project-based) and supported frameworks list.
src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlTypes/SqlVector.cs Fix DocFX <include> relative paths; whitespace cleanup.
src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlTypes/SqlJson.cs Fix DocFX <include> relative paths; formatting cleanup.
src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlDbTypeExtensions.cs Fix DocFX <include> relative paths.
src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlDataReader.cs Fix DocFX <include> relative paths; whitespace cleanup.
src/Microsoft.Data.SqlClient/src/Microsoft.Data.SqlClient.csproj Enable doc generation, import MdsVersions.props, and change OutputPath to include $(ReferenceType)-$(Configuration).
src/Microsoft.Data.SqlClient/ref/Microsoft.Data.SqlClient.csproj Enable doc generation, import MdsVersions.props, update OutputPath, and gate TrimDocs target appropriately.
src/Microsoft.Data.SqlClient/ref/Microsoft.Data.SqlClient.cs Fix DocFX <include> relative paths and minor whitespace.
src/Microsoft.Data.SqlClient/notsupported/Microsoft.Data.SqlClient.csproj Import MdsVersions.props, align OutputPath and ref artifact path with new layout.
src/Microsoft.Data.SqlClient/MdsVersions.props New centralized MDS versioning props (assembly + package versions).
src/Microsoft.Data.SqlClient.sln Update SolutionItems; add MdsVersions.props and onebranch items; still references old stress pipeline path.
eng/pipelines/stress/stress-tests-stage.yml New stress stage template running Linux/Windows/macOS stress jobs.
eng/pipelines/stress/stress-tests-pipeline.yml New stress pipeline definition triggered via pipeline resources.
eng/pipelines/stress/stress-tests-job.yml New stress job template building/running stress tests per runtime/OS.
eng/pipelines/stress-tests-pipeline.yml Remove old placeholder stress pipeline.
eng/pipelines/stages/stress-tests-ci-stage.yml Remove old stress stage that ran against packaged artifacts.
eng/pipelines/sqlclient-pr-project-ref-pipeline.yml Remove enableStressTests; exclude eng/pipelines/stress/* path; disable legacy SQL tests on PRs.
eng/pipelines/sqlclient-pr-package-ref-pipeline.yml Same as above for package-ref PR pipeline.
eng/pipelines/jobs/test-azure-package-ci-job.yml Fix job comment to match actual job purpose; remove outdated stress-solution wording.
eng/pipelines/jobs/test-abstractions-package-ci-job.yml Same comment cleanup as above.
eng/pipelines/jobs/stress-tests-ci-job.yml Remove old stress job that restored/built the stress solution + ran against artifacts.
eng/pipelines/jobs/pack-azure-package-ci-job.yml Remove outdated stress-solution wording in PLATFORM override comment.
eng/pipelines/jobs/pack-abstractions-package-ci-job.yml Remove outdated stress-solution wording in PLATFORM override comment.
eng/pipelines/dotnet-sqlclient-ci-project-reference-pipeline.yml Remove enableStressTests parameter wiring.
eng/pipelines/dotnet-sqlclient-ci-package-reference-pipeline.yml Remove enableStressTests parameter wiring.
eng/pipelines/dotnet-sqlclient-ci-core.yml Remove stress stage injection; add runLegacySqlTests parameter and legacy SQL 2016/2017 test configurations.
eng/pipelines/common/templates/steps/run-all-tests-step.yml Switch test execution from build.proj to build2.proj targets + new test property names.
eng/pipelines/common/templates/steps/ci-project-build-step.yml Switch build to build2.proj (BuildMds) and update property names.
build2.proj Add/extend PackMds; adjust build/test targets and arguments; introduce signing arg; refactor paths.

# Install the .NET SDK and Runtimes.
- template: /eng/pipelines/steps/install-dotnet.yml@self
parameters:
runtimes: [8.x, 9.x]
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

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

This job installs only the 8.x and 9.x runtimes, but the stress stage defaults netTestRuntimes to include net10.0. Unless the agent images already include .NET 10, the dotnet run -f net10.0 steps will fail. Consider installing 10.x here or removing net10.0 from the default runtime list.

Suggested change
runtimes: [8.x, 9.x]
runtimes: [8.x, 9.x, 10.x]

Copilot uses AI. Check for mistakes.
@paulmedynski paulmedynski moved this from To triage to In review in SqlClient Board Mar 31, 2026
@paulmedynski paulmedynski marked this pull request as ready for review March 31, 2026 19:49
@paulmedynski paulmedynski requested a review from a team as a code owner March 31, 2026 19:49
@paulmedynski paulmedynski marked this pull request as draft April 2, 2026 15:48
@paulmedynski paulmedynski modified the milestones: 7.0.1, 7.0.2 Apr 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In review

Development

Successfully merging this pull request may close these issues.

2 participants