-
Notifications
You must be signed in to change notification settings - Fork 311
Add Stress Tests to CI #3558
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Add Stress Tests to CI #3558
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3558 +/- ##
==========================================
+ Coverage 59.44% 67.16% +7.72%
==========================================
Files 268 274 +6
Lines 62160 62478 +318
==========================================
+ Hits 36950 41963 +5013
+ Misses 25210 20515 -4695
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
d129881
to
f5308b0
Compare
- Added config file path configuration via STRESS_CONFIG_FILE environment variable. - Added support for JSON config file. - Fixed process exit code to reflect success vs failure. - Added emission to console. - Added emission of data source. - Added EntraId password-based auth. - Added CI stage. - Added NuGet package version to MDS assembly. - Added dotnet build configuration pararmeter to CI entry points. - Added MDS package version configurability to stress tests. - Added all target frameworks that MDS supports. - Each test run now creates and drops its own database to avoid collisions. - Moved to 1ES images where possible. - Using a local SQL Server that we setup as part of CI.
b5b1a71
to
0188996
Compare
There was a problem hiding this 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 adds stress test execution to the CI pipeline for Microsoft.Data.SqlClient. The stress tests will run against Azure SQL database using existing infrastructure with EntraId username/password authentication.
Key changes:
- Creates new CI pipeline stages and jobs to build and run stress tests across multiple platforms (Windows, Linux, macOS)
- Modernizes the stress test framework with JSON configuration support, multi-target framework builds, and dynamic database creation
- Implements comprehensive stress test automation that can run against both local SQL Server instances and cloud databases
Reviewed Changes
Copilot reviewed 29 out of 29 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
tools/targets/GenerateThisAssemblyCs.targets | Adds NuGetPackageVersion constant for version tracking |
eng/pipelines/stages/stress-tests-ci-stage.yml | New CI stage template for orchestrating stress tests across platforms |
eng/pipelines/jobs/stress-tests-ci-job.yml | New CI job template for building and running stress tests on specific platforms |
eng/pipelines/dotnet-sqlclient-ci-*.yml | Updates core CI pipelines to include stress test stages |
src/Microsoft.Data.SqlClient/tests/StressTests/SqlClient.Stress.*/*.csproj | Modernizes project files to use centralized configuration |
src/Microsoft.Data.SqlClient/tests/StressTests/SqlClient.Stress.Framework/StressConfigReader.cs | Adds JSON configuration file support alongside existing XML |
src/Microsoft.Data.SqlClient/tests/StressTests/SqlClient.Stress.Tests/SqlClientStressFactory.cs | Implements database creation/deletion and EntraId authentication support |
src/Microsoft.Data.SqlClient/tests/StressTests/SqlClient.Stress.Runner/Program.cs | Enhances CLI with console output option and MDS version reporting |
src/Microsoft.Data.SqlClient/tests/StressTests/Directory.*.props | Adds centralized build configuration for all stress test projects |
src/Microsoft.Data.SqlClient/tests/StressTests/Readme.md | Updates documentation with current framework support and usage instructions |
You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.
src/Microsoft.Data.SqlClient/tests/StressTests/SqlClient.Stress.Tests/SqlClientStressFactory.cs
Outdated
Show resolved
Hide resolved
- Added top-level pipeline flag to enable stress tests, deafult is false until tests are reliably passing.
d015909
to
2fe032a
Compare
- Addressed Copilot suggestions.
/azp run |
Azure Pipelines successfully started running 2 pipeline(s). |
The latest CI-SqlClient run for this PR is all green: This PR can be merged once approved. |
Description
Adding stress tests runs to CI. These will use 1ES images for Windows and Linux, and Azure Pipelines macos-latest for macOS. All tests run against a locally installed SQL Server using SQL auth.
CI pipelines disable stress tests by default. You can manually run the pipelines with stress tests enabled.