From b87ee74ddb031cd7fdb9bb9f06aa735e1f79c2e6 Mon Sep 17 00:00:00 2001 From: mdh1418 Date: Fri, 8 Sep 2023 14:15:10 -0400 Subject: [PATCH 1/3] [CI][Android] Build mono runtime for Android on PRs --- eng/pipelines/runtime.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 0f1f9610c60349..90f8aeacc2084d 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -378,6 +378,23 @@ extends: eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), eq(variables['isRollingBuild'], true)) + # Build the Mono runtime + # Only mono has changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Debug + runtimeFlavor: mono + platforms: + - android_arm64 + jobParameters: + testGroup: innerloop + nameSuffix: MonoSubset + buildArgs: -s mono -c $(_BuildConfig) + condition: >- + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true) + # Build the whole product using Mono runtime # Only when libraries, mono or installer are changed # From 3db9551240ed1ce80023a91a0eafe9ffcf29430e Mon Sep 17 00:00:00 2001 From: mdh1418 Date: Fri, 8 Sep 2023 14:53:55 -0400 Subject: [PATCH 2/3] [CI][Android] Build and run smoke tests --- eng/pipelines/runtime.yml | 51 ++++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 90f8aeacc2084d..46c7f063db8944 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -378,23 +378,6 @@ extends: eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), eq(variables['isRollingBuild'], true)) - # Build the Mono runtime - # Only mono has changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Debug - runtimeFlavor: mono - platforms: - - android_arm64 - jobParameters: - testGroup: innerloop - nameSuffix: MonoSubset - buildArgs: -s mono -c $(_BuildConfig) - condition: >- - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true) - # Build the whole product using Mono runtime # Only when libraries, mono or installer are changed # @@ -573,6 +556,40 @@ extends: extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) alwaysRun: ${{ variables.isRollingBuild }} + # + # Android devices - Build the Mono runtime and run smoke tests + # Only mono has changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - android_arm + - android_arm64 + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: monoContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: MonoLibsTests + buildArgs: -s mono+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:EnableAdditionalTimezoneChecks=true + timeoutInMinutes: 480 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + # # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size # Build the whole product using Mono and run libraries tests From 77081b9aee17d7e1e1d07a9095ad240e5bd2df2c Mon Sep 17 00:00:00 2001 From: mdh1418 Date: Fri, 8 Sep 2023 14:59:17 -0400 Subject: [PATCH 3/3] Mimic ios/tvos devices job --- eng/pipelines/runtime.yml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 46c7f063db8944..050fc9037db965 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -557,8 +557,8 @@ extends: alwaysRun: ${{ variables.isRollingBuild }} # - # Android devices - Build the Mono runtime and run smoke tests - # Only mono has changed + # Android devices + # Build the whole product using Mono and run libraries tests # - template: /eng/pipelines/common/platform-matrix.yml parameters: @@ -577,18 +577,25 @@ extends: value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] jobParameters: testGroup: innerloop - nameSuffix: MonoLibsTests - buildArgs: -s mono+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:EnableAdditionalTimezoneChecks=true + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:EnableAdditionalTimezoneChecks=true timeoutInMinutes: 480 condition: >- or( eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true)) + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) # extra steps, run tests extraStepsTemplate: /eng/pipelines/libraries/helix.yml extraStepsParameters: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig) + condition: >- + or( + eq(variables['librariesContainsChange'], true), + eq(variables['monoContainsChange'], true), + eq(variables['isRollingBuild'], true)) # # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size