Skip to content

Pre-install the .NET SDK in Windows CI runners #7001

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

Merged
merged 1 commit into from
May 27, 2025

Conversation

andrewlock
Copy link
Member

Summary of changes

Pre-install the .NET SDKs/runtimes in the Windows VMs

Reason for change

Currently we're explicitly installing the .NET SDK/runtime in the Windows stages. This takes time. Seeing as we pre-build the Windows VMs anyway, we can just pre-install the .NET SDKs there, and set the PATH/DOTNET_32 variables in the VMs.

Implementation details

Updated the VMs to pre-install the .NET SDKs, and remove the tasks that were installing the SDKs in the pipeline.

Note that we still need to install the SDKs in several places:

  • When we use the Azure Devops runners - which currently we use for the smoke tests.
  • The macOS stages, because they're hosted runners

Test coverage

Ran a full test, and all looks good AFAICT.

Other details

Updated the documentation to include pre-installing the SDKs

@andrewlock andrewlock requested a review from a team as a code owner May 23, 2025 10:12
@andrewlock andrewlock added the area:builds project files, build scripts, pipelines, versioning, releases, packages label May 23, 2025
@andrewlock andrewlock changed the title Stop installing .NET all over the place Pre-install the .NET SDK in Windows CI runners May 23, 2025
@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1 bot commented May 23, 2025

Datadog Report

All test runs ff5c2f5 🔗

2 Total Test Services: 0 Failed, 2 Passed
❄️ 1 with New Flaky

Test Services
Service Name Failed Known Flaky New Flaky Passed Skipped Total Time Test Service View
dd-trace-dotnet 0 0 2 576623 9017 67h 55m 12.34s Link
exploration_tests 0 0 0 22085 3 14m 55.97s Link

@andrewlock
Copy link
Member Author

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing the following branches/commits:

Execution-time benchmarks measure the whole time it takes to execute a program. And are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are shown in red. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (7001) - mean (68ms)  : 66, 70
     .   : milestone, 68,
    master - mean (68ms)  : 66, 70
     .   : milestone, 68,

    section CallTarget+Inlining+NGEN
    This PR (7001) - mean (1,008ms)  : 989, 1028
     .   : milestone, 1008,
    master - mean (1,007ms)  : 987, 1027
     .   : milestone, 1007,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (7001) - mean (102ms)  : 101, 104
     .   : milestone, 102,
    master - mean (102ms)  : 100, 104
     .   : milestone, 102,

    section CallTarget+Inlining+NGEN
    This PR (7001) - mean (689ms)  : 668, 710
     .   : milestone, 689,
    master - mean (694ms)  : 676, 712
     .   : milestone, 694,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (7001) - mean (89ms)  : 87, 91
     .   : milestone, 89,
    master - mean (89ms)  : 87, 91
     .   : milestone, 89,

    section CallTarget+Inlining+NGEN
    This PR (7001) - mean (652ms)  : 629, 675
     .   : milestone, 652,
    master - mean (656ms)  : 633, 679
     .   : milestone, 656,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (7001) - mean (189ms)  : 186, 193
     .   : milestone, 189,
    master - mean (190ms)  : 187, 193
     .   : milestone, 190,

    section CallTarget+Inlining+NGEN
    This PR (7001) - mean (1,112ms)  : 1084, 1140
     .   : milestone, 1112,
    master - mean (1,119ms)  : 1086, 1153
     .   : milestone, 1119,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (7001) - mean (268ms)  : 264, 271
     .   : milestone, 268,
    master - mean (268ms)  : 264, 272
     .   : milestone, 268,

    section CallTarget+Inlining+NGEN
    This PR (7001) - mean (873ms)  : 841, 905
     .   : milestone, 873,
    master - mean (877ms)  : 846, 907
     .   : milestone, 877,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (7001) - mean (261ms)  : 257, 265
     .   : milestone, 261,
    master - mean (261ms)  : 258, 264
     .   : milestone, 261,

    section CallTarget+Inlining+NGEN
    This PR (7001) - mean (867ms)  : 829, 904
     .   : milestone, 867,
    master - mean (867ms)  : 845, 889
     .   : milestone, 867,

Loading

Copy link
Collaborator

@bouwkast bouwkast left a comment

Choose a reason for hiding this comment

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

Awesome thanks!

Copy link
Contributor

@NachoEchevarria NachoEchevarria left a comment

Choose a reason for hiding this comment

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

Thanks!

@andrewlock andrewlock merged commit 4f0f743 into master May 27, 2025
149 of 150 checks passed
@andrewlock andrewlock deleted the andrew/ci/stop-installing-dotnet-so-much branch May 27, 2025 11:27
@github-actions github-actions bot added this to the vNext-v3 milestone May 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:builds project files, build scripts, pipelines, versioning, releases, packages
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants