diff --git a/build-tools/automation/azure-pipelines-nightly.yaml b/build-tools/automation/azure-pipelines-nightly.yaml index 0f7baf8987b..029a3992395 100644 --- a/build-tools/automation/azure-pipelines-nightly.yaml +++ b/build-tools/automation/azure-pipelines-nightly.yaml @@ -110,12 +110,10 @@ stages: steps: - template: yaml-templates/setup-test-environment.yaml parameters: - configuration: $(XA.Build.Configuration) - - - template: yaml-templates/run-xaprepare.yaml - parameters: - displayName: install emulator - arguments: --s=EmulatorTestDependencies + installLegacyDotNet: false + restoreNUnitConsole: false + updateMono: false + xaprepareScenario: EmulatorTestDependencies - template: yaml-templates/run-dotnet-preview.yaml parameters: @@ -127,12 +125,12 @@ stages: - script: echo "##vso[task.setvariable variable=Java8SdkDirectory]$JAVA_HOME_8_X64" displayName: set Java8SdkDirectory - - task: MSBuild@1 - displayName: install and launch emulator - inputs: - solution: tests/Mono.Android-Tests/Mono.Android-Tests.csproj - configuration: $(XA.Build.Configuration) - msbuildArguments: /t:InstallAvdImage;AcquireAndroidTarget /p:TestAvdApiLevel=$(avdApiLevel) /p:TestAvdAbi=$(avdAbi) /p:TestAvdType=$(avdType) /bl:$(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/install-emulator-$(avdApiLevel).binlog + - template: yaml-templates/start-stop-emulator.yaml + parameters: + specificImage: true + avdApiLevel: $(avdApiLevel) + avdAbi: $(avdAbi) + avdType: $(avdType) - template: yaml-templates/apk-instrumentation.yaml parameters: @@ -144,14 +142,6 @@ stages: artifactSource: bin/Test$(XA.Build.Configuration)/$(DotNetTargetFramework)-android/Mono.Android.NET_Tests-Signed.aab artifactFolder: Mono.Android-$(XA.Build.Configuration)-$(avdApiLevel) - - task: MSBuild@1 - displayName: shut down emulator - inputs: - solution: tests/Mono.Android-Tests/Mono.Android-Tests.csproj - configuration: $(XA.Build.Configuration) - msbuildArguments: /t:AcquireAndroidTarget,ReleaseAndroidTarget /p:TestAvdApiLevel=$(avdApiLevel) /p:TestAvdAbi=$(avdAbi) /p:TestAvdType=$(avdType) /bl:$(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/shutdown-emulator.binlog - condition: always() - - template: yaml-templates/upload-results.yaml parameters: configuration: $(XA.Build.Configuration) diff --git a/build-tools/automation/yaml-templates/run-emulator-tests.yaml b/build-tools/automation/yaml-templates/run-emulator-tests.yaml index 8d1b4f7fd11..81b115b8c06 100644 --- a/build-tools/automation/yaml-templates/run-emulator-tests.yaml +++ b/build-tools/automation/yaml-templates/run-emulator-tests.yaml @@ -16,36 +16,23 @@ jobs: clean: all steps: - template: setup-test-environment.yaml - - - template: run-xaprepare.yaml parameters: - arguments: --s=EmulatorTestDependencies + installLegacyDotNet: false + restoreNUnitConsole: false + updateMono: false + xaprepareScenario: EmulatorTestDependencies - task: DownloadPipelineArtifact@2 inputs: artifactName: $(TestAssembliesArtifactName) downloadPath: $(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration) - - task: MSBuild@1 - displayName: start emulator - inputs: - solution: tests/Mono.Android-Tests/Mono.Android-Tests.csproj - configuration: $(XA.Build.Configuration) - msbuildArguments: >- - /t:AcquireAndroidTarget ${{ parameters.emulatorMSBuildArgs }} /bl:$(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/start-emulator.binlog + - template: start-stop-emulator.yaml + parameters: + emulatorMSBuildArgs: ${{ parameters.emulatorMSBuildArgs }} - ${{ parameters.testSteps }} - - task: MSBuild@1 - displayName: shut down emulator - inputs: - solution: tests/Mono.Android-Tests/Mono.Android-Tests.csproj - configuration: $(XA.Build.Configuration) - msbuildArguments: >- - /t:AcquireAndroidTarget,ReleaseAndroidTarget - /bl:$(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/shutdown-emulator.binlog - condition: always() - - template: upload-results.yaml parameters: artifactName: Test Results - ${{ parameters.jobName }} With Emulator - macOS diff --git a/build-tools/automation/yaml-templates/run-localization-tests.yaml b/build-tools/automation/yaml-templates/run-localization-tests.yaml deleted file mode 100644 index 2376c0e3dfb..00000000000 --- a/build-tools/automation/yaml-templates/run-localization-tests.yaml +++ /dev/null @@ -1,56 +0,0 @@ -# Runs Localization tests against an emulator running on macOS - -parameters: - node_id: 0 - -jobs: - - job: mac_localization_tests_${{ parameters.node_id }} - displayName: Localization Emulator Tests ${{ parameters.node_id }} - pool: - vmImage: $(HostedMacImage) - timeoutInMinutes: 180 - cancelTimeoutInMinutes: 5 - workspace: - clean: all - steps: - - template: setup-test-environment.yaml - - - template: run-xaprepare.yaml - parameters: - arguments: --s=EmulatorTestDependencies - - - task: DownloadPipelineArtifact@2 - inputs: - artifactName: $(TestAssembliesArtifactName) - downloadPath: $(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration) - - - task: MSBuild@1 - displayName: start emulator - inputs: - solution: tests/Mono.Android-Tests/Mono.Android-Tests.csproj - configuration: $(XA.Build.Configuration) - msbuildArguments: >- - /t:AcquireAndroidTarget /bl:$(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/start-emulator.binlog - - - template: run-nunit-tests.yaml - parameters: - testRunTitle: LocalizationTests On Device - macOS - testAssembly: $(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/MSBuildDeviceIntegration/$(DotNetStableTargetFramework)/MSBuildDeviceIntegration.dll - dotNetTestExtraArgs: --filter "Name~CheckLocalizationIsCorrectNode${{ parameters.node_id }}" - testResultsFile: TestResult-LocalizationTests-Node${{ parameters.node_id }}-$(XA.Build.Configuration).xml - - - task: MSBuild@1 - displayName: shut down emulator - inputs: - solution: tests/Mono.Android-Tests/Mono.Android-Tests.csproj - configuration: $(XA.Build.Configuration) - msbuildArguments: >- - /t:AcquireAndroidTarget,ReleaseAndroidTarget - /bl:$(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/shutdown-emulator.binlog - condition: always() - - - template: upload-results.yaml - parameters: - artifactName: Test Results - TimeZoneInfo With Emulator - macOS - ${{ parameters.node_id }} - - - template: fail-on-issue.yaml diff --git a/build-tools/automation/yaml-templates/start-stop-emulator.yaml b/build-tools/automation/yaml-templates/start-stop-emulator.yaml index 31c9e876c2d..afaa89cc660 100644 --- a/build-tools/automation/yaml-templates/start-stop-emulator.yaml +++ b/build-tools/automation/yaml-templates/start-stop-emulator.yaml @@ -5,6 +5,7 @@ parameters: avdApiLevel: # Device API level, like '30', required if 'specificImage' is 'true' avdAbi: # Device ABI, like 'x86', required if 'specificImage' is 'true' avdType: # Device AVD, like 'android-wear', required if 'specificImage' is 'true' + emulatorMSBuildArgs: # Extra args to pass to the emulator configuration like '-p:TestAvdExtraBootArgs=-writable-system', optional launchTimeoutMin: 20 # Minutes to wait for the emulator to start xaSourcePath: $(System.DefaultWorkingDirectory) # working directory @@ -16,9 +17,21 @@ steps: inputs: projects: ${{ parameters.xaSourcePath }}/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Emulator.csproj ${{ if eq(parameters.specificImage, true) }}: - arguments: -c $(XA.Build.Configuration) -t:"InstallAvdImage;AcquireAndroidTarget" -p:TestDeviceName=${{ parameters.deviceName }} -p:TestAvdApiLevel=${{ parameters.avdApiLevel }} -p:TestAvdAbi=${{ parameters.avdAbi }} -p:TestAvdType=${{ parameters.avdType }} -p:AvdLaunchTimeoutMinutes=${{ parameters.launchTimeoutMin }} -bl:$(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/install-emulator-${{ parameters.avdApiLevel }}.binlog + arguments: >- + -c $(XA.Build.Configuration) -t:"InstallAvdImage;AcquireAndroidTarget" + -p:TestDeviceName=${{ parameters.deviceName }} + -p:TestAvdApiLevel=${{ parameters.avdApiLevel }} + -p:TestAvdAbi=${{ parameters.avdAbi }} + -p:TestAvdType=${{ parameters.avdType }} + ${{ parameters.emulatorMSBuildArgs }} + -p:AvdLaunchTimeoutMinutes=${{ parameters.launchTimeoutMin }} + -bl:$(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/install-emulator-${{ parameters.avdApiLevel }}.binlog ${{ else }}: - arguments: -c $(XA.Build.Configuration) -t:AcquireAndroidTarget -p:AvdLaunchTimeoutMinutes=${{ parameters.launchTimeoutMin }} -bl:$(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/start-emulator.binlog + arguments: >- + -c $(XA.Build.Configuration) -t:AcquireAndroidTarget + ${{ parameters.emulatorMSBuildArgs }} + -p:AvdLaunchTimeoutMinutes=${{ parameters.launchTimeoutMin }} + -bl:$(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/start-emulator.binlog - ${{ if eq(parameters.command, 'stop') }}: - task: DotNetCoreCLI@2 @@ -28,6 +41,16 @@ steps: inputs: projects: ${{ parameters.xaSourcePath }}/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Emulator.csproj ${{ if eq(parameters.specificImage, true) }}: - arguments: -c $(XA.Build.Configuration) -t:"AcquireAndroidTarget,ReleaseAndroidTarget" -p:TestDeviceName=${{ parameters.deviceName }} -p:TestAvdApiLevel=${{ parameters.avdApiLevel }} -p:TestAvdAbi=${{ parameters.avdAbi }} -p:TestAvdType=${{ parameters.avdType }} -p:AvdLaunchTimeoutMinutes=${{ parameters.launchTimeoutMin }} -bl:$(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/shutdown-emulator.binlog + arguments: >- + -c $(XA.Build.Configuration) -t:"AcquireAndroidTarget,ReleaseAndroidTarget" + -p:TestDeviceName=${{ parameters.deviceName }} + -p:TestAvdApiLevel=${{ parameters.avdApiLevel }} + -p:TestAvdAbi=${{ parameters.avdAbi }} + -p:TestAvdType=${{ parameters.avdType }} + -p:AvdLaunchTimeoutMinutes=${{ parameters.launchTimeoutMin }} + -bl:$(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/shutdown-emulator.binlog ${{ else }}: - arguments: -c $(XA.Build.Configuration) -t:"AcquireAndroidTarget,ReleaseAndroidTarget" -p:AvdLaunchTimeoutMinutes=${{ parameters.launchTimeoutMin }} -bl:$(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/shutdown-emulator.binlog + arguments: >- + -c $(XA.Build.Configuration) -t:"AcquireAndroidTarget,ReleaseAndroidTarget" + -p:AvdLaunchTimeoutMinutes=${{ parameters.launchTimeoutMin }} + -bl:$(System.DefaultWorkingDirectory)/bin/Test$(XA.Build.Configuration)/shutdown-emulator.binlog