11trigger : none
22
3- pr :
4- branches :
5- include :
6- - main
7- - release/*.0
8- paths :
9- include :
10- - src/libraries/System.Net.Http/tests/StressTests/HttpStress/**
11- - src/libraries/Common/tests/System/Net/StressTests/**
12- - eng/pipelines/libraries/stress/**
13-
143schedules :
154- cron : " 0 13 * * *" # 1PM UTC => 5 AM PST
165 displayName : HttpStress nightly run
@@ -29,148 +18,8 @@ variables:
2918 - name : sdkBaseImage
3019 value : dotnet-sdk-libraries-current
3120
32-
3321extends :
34- template : /eng/pipelines/common/templates/pipeline-with-resources.yml
22+ template : /eng/pipelines/common/templates/pipeline-with-resources.yml
3523 parameters :
3624 stages :
37- - stage : Build
38- jobs :
39- - job : linux
40- displayName : Docker Linux
41- timeoutInMinutes : 240
42- variables :
43- DUMPS_SHARE_MOUNT_ROOT : " /dumps-share"
44- DUMPS_SHARE : " $(Build.ArtifactStagingDirectory)/dumps/"
45- pool :
46- name : $(DncEngPublicBuildPool)
47- demands : ImageOverride -equals build.azurelinux.3.amd64.open
48-
49- steps :
50- - checkout : self
51- clean : true
52- fetchDepth : 5
53- fetchTags : false
54-
55- - bash : |
56- $(dockerfilesFolder)/build-docker-sdk.sh -t $(sdkBaseImage) -c $(BUILD_CONFIGURATION) && \
57- echo "##vso[task.setvariable variable=succeeded;isOutput=true]true"
58- name: buildRuntime
59- displayName: Build CLR and Libraries
60-
61- - bash : |
62- $(httpStressProject)/run-docker-compose.sh -o -c $(BUILD_CONFIGURATION) -t $(sdkBaseImage) && \
63- echo "##vso[task.setvariable variable=succeeded;isOutput=true]true"
64- name: buildStress
65- displayName: Build HttpStress
66-
67- - bash : |
68- cd '$(httpStressProject)'
69- export STRESS_CLIENT_ARGS="$HTTPSTRESS_CLIENT_ARGS -http 3.0"
70- export STRESS_SERVER_ARGS="$HTTPSTRESS_SERVER_ARGS -http 3.0"
71- mkdir -p $DUMPS_SHARE
72- docker compose up --abort-on-container-exit --no-color
73- timeoutInMinutes: 35 # In case the HTTP/3.0 run hangs, we timeout shortly after the expected 30 minute run
74- displayName: Run HttpStress - HTTP 3.0
75- condition: and(eq(variables['buildRuntime.succeeded'], 'true'), eq(variables['buildStress.succeeded'], 'true'))
76-
77- - bash : |
78- cd '$(httpStressProject)'
79- export STRESS_CLIENT_ARGS="$HTTPSTRESS_CLIENT_ARGS -http 2.0"
80- export STRESS_SERVER_ARGS="$HTTPSTRESS_SERVER_ARGS -http 2.0"
81- mkdir -p $DUMPS_SHARE
82- docker compose down
83- docker compose up --abort-on-container-exit --no-color
84- displayName: Run HttpStress - HTTP 2.0
85- condition: and(eq(variables['buildRuntime.succeeded'], 'true'), eq(variables['buildStress.succeeded'], 'true'))
86-
87- - bash : |
88- cd '$(httpStressProject)'
89- export STRESS_CLIENT_ARGS="$HTTPSTRESS_CLIENT_ARGS -http 1.1"
90- export STRESS_SERVER_ARGS="$HTTPSTRESS_SERVER_ARGS -http 1.1"
91- mkdir -p $DUMPS_SHARE
92- docker compose down
93- docker compose up --abort-on-container-exit --no-color
94- displayName: Run HttpStress - HTTP 1.1
95- condition: and(eq(variables['buildRuntime.succeeded'], 'true'), eq(variables['buildStress.succeeded'], 'true'))
96-
97- - bash : |
98- sudo chown -R $(id -u):$(id -g) $(Build.ArtifactStagingDirectory)/dumps
99- displayName: Own shared dumps and files
100- condition: failed()
101-
102- - publish : $(Build.ArtifactStagingDirectory)/dumps
103- artifact : DumpsLinux
104- condition : failed()
105-
106- - job : windows
107- displayName : Docker NanoServer
108- timeoutInMinutes : 150
109- variables :
110- DUMPS_SHARE_MOUNT_ROOT : " C:/dumps-share"
111- DUMPS_SHARE : " $(Build.ArtifactStagingDirectory)/dumps/"
112- pool :
113- name : $(DncEngPublicBuildPool)
114- demands : ImageOverride -equals windows.vs2026.amd64.open
115-
116- steps :
117- - checkout : self
118- clean : true
119- fetchDepth : 5
120- fetchTags : false
121- lfs : false
122-
123- - powershell : |
124- $(dockerfilesFolder)/build-docker-sdk.ps1 -w -t $(sdkBaseImage) -c $(BUILD_CONFIGURATION)
125- echo "##vso[task.setvariable variable=succeeded;isOutput=true]true"
126- name: buildRuntime
127- displayName: Build CLR and Libraries
128-
129- - powershell : |
130- $(httpStressProject)/run-docker-compose.ps1 -w -o -c $(BUILD_CONFIGURATION) -t $(sdkBaseImage)
131- echo "##vso[task.setvariable variable=succeeded;isOutput=true]true"
132- name: buildStress
133- displayName: Build HttpStress
134-
135- # Firewall is disabled for the test runs, since it can lead to unexpected TCP failures on CI machines, which are unrelated to the HTTP logic.
136- # See: https://github.com/dotnet/runtime/issues/50854
137- - powershell : |
138- Set-NetFirewallProfile -Profile Domain, Public, Private -Enabled False
139- name: disableFirewall
140- displayName: Disable Firewall
141-
142- - powershell : |
143- cd '$(httpStressProject)'
144- $env:STRESS_CLIENT_ARGS = "$env:HTTPSTRESS_CLIENT_ARGS -http 3.0"
145- $env:STRESS_SERVER_ARGS = "$env:HTTPSTRESS_SERVER_ARGS -http 3.0"
146- New-Item -Force $env:DUMPS_SHARE -ItemType Directory
147- docker-compose up --abort-on-container-exit --no-color
148- displayName: Run HttpStress - HTTP 3.0
149- condition: and(eq(variables['buildRuntime.succeeded'], 'true'), eq(variables['buildStress.succeeded'], 'true'))
150-
151- - powershell : |
152- cd '$(httpStressProject)'
153- $env:STRESS_CLIENT_ARGS = "$env:HTTPSTRESS_CLIENT_ARGS -http 2.0"
154- $env:STRESS_SERVER_ARGS = "$env:HTTPSTRESS_SERVER_ARGS -http 2.0"
155- New-Item -Force $env:DUMPS_SHARE -ItemType Directory
156- docker-compose up --abort-on-container-exit --no-color
157- displayName: Run HttpStress - HTTP 2.0
158- condition: and(eq(variables['buildRuntime.succeeded'], 'true'), eq(variables['buildStress.succeeded'], 'true'))
159-
160- - powershell : |
161- cd '$(httpStressProject)'
162- $env:STRESS_CLIENT_ARGS = "$env:HTTPSTRESS_CLIENT_ARGS -http 1.1"
163- $env:STRESS_SERVER_ARGS = "$env:HTTPSTRESS_SERVER_ARGS -http 1.1"
164- New-Item -Force $env:DUMPS_SHARE -ItemType Directory
165- docker-compose up --abort-on-container-exit --no-color
166- displayName: Run HttpStress - HTTP 1.1
167- condition: and(eq(variables['buildRuntime.succeeded'], 'true'), eq(variables['buildStress.succeeded'], 'true'))
168-
169- - publish : $(Build.ArtifactStagingDirectory)/dumps
170- artifact : DumpsWindows
171- condition : failed()
172-
173- - powershell : |
174- Set-NetFirewallProfile -Profile Domain, Public, Private -Enabled True
175- name: enableFirewall
176- displayName: Enable Firewall
25+ - template : /eng/pipelines/libraries/stress/http-stages.yml
0 commit comments