Skip to content

Commit fb10769

Browse files
authored
[ci] Don't stop emulator on test agents that won't get reused. (#8005)
The "stop emulator" step on CI generally takes ~35-40 seconds. However, our Mac agents are public images that are not reused, so there is no benefit to cleaning up after ourselves. Create a new parameter called `macTestAgentsUseCleanImages` and don't bother stopping the emulator if it set to true. (We currently only run emulators on Macs.)
1 parent 7e8215f commit fb10769

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

build-tools/automation/azure-pipelines.yaml

+8-3
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ parameters:
3535
- name: provisionatorChannel
3636
type: string
3737
default: latest # Support for launching a build against a Provisionator PR (e.g., pr/[github-account-name]/[pr-number]) as a means to test in-progress Provisionator changes
38+
- name: macTestAgentsUseCleanImages # Test agents we do not need to clean up when finished because they are not reused
39+
default: true
3840

3941
# Global variables
4042
variables:
@@ -236,9 +238,10 @@ stages:
236238
testAssembly: $(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/$(DotNetStableTargetFramework)/Xamarin.Android.Tools.Aidl-Tests.dll
237239
testResultsFile: TestResult-Aidl-Tests-macOS-$(XA.Build.Configuration).xml
238240

239-
- template: yaml-templates/start-stop-emulator.yaml
240-
parameters:
241-
command: stop
241+
- ${{ if ne(parameters.macTestAgentsUseCleanImages, true) }}:
242+
- template: yaml-templates/start-stop-emulator.yaml
243+
parameters:
244+
command: stop
242245

243246
- template: yaml-templates/upload-results.yaml
244247
parameters:
@@ -294,6 +297,8 @@ stages:
294297
- template: yaml-templates/stage-msbuild-tests.yaml
295298

296299
- template: yaml-templates/stage-msbuild-emulator-tests.yaml
300+
parameters:
301+
usesCleanImages: ${{ parameters.macTestAgentsUseCleanImages }}
297302

298303
- stage: dotnet_prepare_release
299304
displayName: Prepare .NET Release

build-tools/automation/yaml-templates/stage-msbuild-emulator-tests.yaml

+14-11
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ parameters:
1010
xaSourcePath: $(System.DefaultWorkingDirectory)
1111
repositoryAlias: 'self'
1212
commit: ''
13+
usesCleanImages: true
1314

1415
stages:
1516
- stage: ${{ parameters.stageName }}
@@ -54,9 +55,10 @@ stages:
5455
testFilter: cat != TimeZoneInfo & cat != Localization $(ExcludedNUnitCategories)
5556
testRunTitle: MSBuildDeviceIntegration On Device - macOS
5657

57-
- template: start-stop-emulator.yaml
58-
parameters:
59-
command: stop
58+
- ${{ if ne(parameters.usesCleanImages, true) }}:
59+
- template: start-stop-emulator.yaml
60+
parameters:
61+
command: stop
6062

6163
- template: upload-results.yaml
6264
parameters:
@@ -121,14 +123,15 @@ stages:
121123
dotNetTestExtraArgs: --filter "TestCategory = WearOS"
122124
testResultsFile: TestResult-WearOS--$(XA.Build.Configuration).xml
123125

124-
- template: start-stop-emulator.yaml
125-
parameters:
126-
command: stop
127-
specificImage: true
128-
deviceName: $(deviceName)
129-
avdApiLevel: $(avdApiLevel)
130-
avdAbi: $(avdAbi)
131-
avdType: $(avdType)
126+
- ${{ if ne(parameters.usesCleanImages, true) }}:
127+
- template: start-stop-emulator.yaml
128+
parameters:
129+
command: stop
130+
specificImage: true
131+
deviceName: $(deviceName)
132+
avdApiLevel: $(avdApiLevel)
133+
avdAbi: $(avdAbi)
134+
avdType: $(avdType)
132135

133136
- template: upload-results.yaml
134137
parameters:

0 commit comments

Comments
 (0)