From 7b4e74917b37b8d2e79f027a97b61f1c5e2dba59 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 10:22:29 +0200 Subject: [PATCH 001/109] Initial commit --- eng/liveBuilds.targets | 3 +- .../build-runtime-tests-and-send-to-helix.yml | 9 + eng/pipelines/runtime.yml | 2787 +++++++++-------- .../Microsoft.NETCore.Native.Publish.targets | 4 +- .../Microsoft.NETCore.Native.targets | 28 +- .../pkg/projects/nativeaot-packages.proj | 2 +- src/mono/sample/iOS-NativeAOT/Makefile | 2 +- src/mono/sample/iOS-NativeAOT/Program.csproj | 2 +- .../Templates/CMakeLists.txt.template | 15 +- src/tasks/AppleAppBuilder/Xcode.cs | 12 +- src/tests/Directory.Build.targets | 14 + src/tests/build.proj | 166 +- .../SmokeTests/UnitTests/Delegates.cs | 2 +- .../SmokeTests/UnitTests/Generics.cs | 2 +- .../SmokeTests/UnitTests/Interfaces.cs | 4 +- .../SmokeTests/UnitTests/Threading.cs | 4 +- 16 files changed, 1641 insertions(+), 1415 deletions(-) diff --git a/eng/liveBuilds.targets b/eng/liveBuilds.targets index f0a62d03a9d703..9ec240dcf5a91b 100644 --- a/eng/liveBuilds.targets +++ b/eng/liveBuilds.targets @@ -14,7 +14,8 @@ - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)')) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)')) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(TargetArchitecture).$(CoreCLRConfiguration)')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'mono', '$(TargetOS).$(TargetArchitecture).$(MonoConfiguration)')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts')) diff --git a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml index e531acb6384159..0d9ef3677cdd4f 100644 --- a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml @@ -30,6 +30,15 @@ parameters: shouldContinueOnError: false steps: + # Build Native AOT runtime packs + - ${{ if and(eq(parameters.runtimeFlavor, 'nativeaot'), or(eq(parameters.osGroup, 'ios'), eq(parameters.osGroup, 'tvos'))) }}: + - script: ./build.sh + clr.nativeaotruntime+clr.nativeaotlibs + -c ${{ parameters.buildConfig }} + -os ${{ parameters.osGroup }} + -arch ${{ parameters.archType }} + displayName: "Build Native AOT runtime packs" + - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests.yml parameters: osGroup: ${{ parameters.osGroup }} diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 9fe2862edc9e83..d91f81945ae1f8 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -61,1395 +61,1438 @@ extends: - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - template: /eng/pipelines/common/evaluate-default-paths.yml - # - # Build CoreCLR checked - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - linux_x86 - - linux_x64 - - linux_arm - - linux_arm64 - - linux_riscv64 - - linux_musl_arm - - linux_musl_arm64 - - linux_musl_x64 - - osx_arm64 - - tizen_armel - - windows_x86 - - windows_x64 - - windows_arm64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build the whole product using GNU compiler toolchain - # When CoreCLR, Mono, Libraries, Installer and src/tests are changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: checked - platforms: - - gcc_linux_x64 - jobParameters: - testGroup: innerloop - nameSuffix: Native_GCC - buildArgs: -s clr.native+libs.native+mono+host.native -c $(_BuildConfig) -gcc - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests.yml - extraStepsParameters: - testBuildArgs: skipmanaged skipgeneratelayout skiprestorepackages -gcc - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build CoreCLR osx_x64 checked - # Only when CoreCLR or Libraries is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - osx_x64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build CoreCLR release - # Always as they are needed by Installer and we always build and test the Installer. - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: release - platforms: - - osx_arm64 - - osx_x64 - - linux_x64 - - linux_arm - - linux_arm64 - - linux_musl_x64 - - linux_musl_arm - - linux_musl_arm64 - - windows_x64 - - windows_x86 - - windows_arm64 - - freebsd_x64 - jobParameters: - testGroup: innerloop - # Mono/runtimetests also need this, but skip for wasm - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build CoreCLR Formatting Job - # Only when CoreCLR is changed, and only in the 'main' branch (no release branches; - # both Rolling and PR builds). - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml - platforms: - - linux_x64 - - windows_x64 - jobParameters: - condition: >- - and( - or( - eq(variables['Build.SourceBranchName'], 'main'), - eq(variables['System.PullRequest.TargetBranch'], 'main')), - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_jit.containsChange'], true), - eq(variables['isRollingBuild'], true))) - - # - # CoreCLR NativeAOT debug build and smoke tests - # Only when CoreCLR is changed + # # + # # Build CoreCLR checked + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + # buildConfig: checked + # platforms: + # - linux_x86 + # - linux_x64 + # - linux_arm + # - linux_arm64 + # - linux_riscv64 + # - linux_musl_arm + # - linux_musl_arm64 + # - linux_musl_x64 + # - osx_arm64 + # - tizen_armel + # - windows_x86 + # - windows_x64 + # - windows_arm64 + # jobParameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build the whole product using GNU compiler toolchain + # # When CoreCLR, Mono, Libraries, Installer and src/tests are changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: checked + # platforms: + # - gcc_linux_x64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: Native_GCC + # buildArgs: -s clr.native+libs.native+mono+host.native -c $(_BuildConfig) -gcc + # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests.yml + # extraStepsParameters: + # testBuildArgs: skipmanaged skipgeneratelayout skiprestorepackages -gcc + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build CoreCLR osx_x64 checked + # # Only when CoreCLR or Libraries is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + # buildConfig: checked + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build CoreCLR release + # # Always as they are needed by Installer and we always build and test the Installer. + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + # buildConfig: release + # platforms: + # - osx_arm64 + # - osx_x64 + # - linux_x64 + # - linux_arm + # - linux_arm64 + # - linux_musl_x64 + # - linux_musl_arm + # - linux_musl_arm64 + # - windows_x64 + # - windows_x86 + # - windows_arm64 + # - freebsd_x64 + # jobParameters: + # testGroup: innerloop + # # Mono/runtimetests also need this, but skip for wasm + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build CoreCLR Formatting Job + # # Only when CoreCLR is changed, and only in the 'main' branch (no release branches; + # # both Rolling and PR builds). + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml + # platforms: + # - linux_x64 + # - windows_x64 + # jobParameters: + # condition: >- + # and( + # or( + # eq(variables['Build.SourceBranchName'], 'main'), + # eq(variables['System.PullRequest.TargetBranch'], 'main')), + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_jit.containsChange'], true), + # eq(variables['isRollingBuild'], true))) + + # # + # # CoreCLR NativeAOT debug build and smoke tests + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Debug + # platforms: + # - linux_x64 + # - windows_x64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # timeoutInMinutes: 120 + # nameSuffix: NativeAOT + # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + # extraStepsParameters: + # creator: dotnet-bot + # testBuildArgs: nativeaot tree nativeaot + # liveLibrariesBuildConfig: Release + # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # parameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isFullMatrix'], true)) + + # # + # # CoreCLR NativeAOT checked build and smoke tests + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Checked + # platforms: + # - windows_x64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # timeoutInMinutes: 120 + # nameSuffix: NativeAOT + # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + # extraStepsParameters: + # creator: dotnet-bot + # testBuildArgs: 'nativeaot tree ";nativeaot;Loader;Interop;tracing/eventpipe/config;" test tracing/eventcounter/runtimecounters.csproj /p:BuildNativeAotFrameworkObjects=true' + # liveLibrariesBuildConfig: Release + # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # parameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isFullMatrix'], true)) + + # # + # # CoreCLR NativeAOT release build and smoke tests + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Release + # platforms: + # - linux_x64 + # - windows_x64 + # - osx_x64 + # - linux_arm64 + # - windows_arm64 + # - osx_arm64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # testGroup: innerloop + # timeoutInMinutes: 120 + # nameSuffix: NativeAOT + # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + # extraStepsParameters: + # creator: dotnet-bot + # testBuildArgs: 'nativeaot tree ";nativeaot;tracing/eventpipe/simpleprovidervalidation;"' + # liveLibrariesBuildConfig: Release + # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # parameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isFullMatrix'], true)) + + # # + # # CoreCLR NativeAOT release build and libraries tests + # # Only when CoreCLR or library is 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 + # platforms: + # - windows_arm64 + # - linux_arm64 + # - osx_arm64 + # jobParameters: + # testGroup: innerloop + # isSingleFile: true + # nameSuffix: NativeAOT_Libraries + # buildArgs: -s clr.aot+host.native+libs+libs.tests -c $(_BuildConfig) /p:TestNativeAot=true /p:RunSmokeTestsOnly=true /p:ArchiveTests=true + # timeoutInMinutes: 240 # Doesn't actually take long, but we've seen the ARM64 Helix queue often get backlogged for 2+ hours + # # extra steps, run tests + # extraStepsTemplate: /eng/pipelines/libraries/helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(variables['isFullMatrix'], true)) + + # # Build and test clr tools + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: checked + # platforms: + # - linux_x64 + # jobParameters: + # timeoutInMinutes: 120 + # nameSuffix: CLR_Tools_Tests + # buildArgs: -s clr.aot+clr.iltools+libs+clr.toolstests -c $(_BuildConfig) -test + # enablePublishTestResults: true + # testResultsFormat: 'xunit' + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # Build Mono AOT offset headers once, for consumption elsewhere + # # Only when mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml + # buildConfig: release + # platforms: + # - android_x64 + # - browser_wasm + # - tvos_arm64 + # - ios_arm64 + # - maccatalyst_x64 + # jobParameters: + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # # needed by crossaot + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # Build the whole product using Mono runtime + # # Only when libraries, mono or installer are changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # runtimeFlavor: mono + # platforms: + # - tvossimulator_x64 + # - linux_arm + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # 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_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - linux_musl_x64 + # - linux_riscv64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # 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_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # WebAssembly legs + # # + # - template: /eng/pipelines/common/templates/wasm-library-tests.yml + # parameters: + # platforms: + # - browser_wasm + # alwaysRun: ${{ variables.isRollingBuild }} + # scenarios: + # - normal + # - WasmTestOnBrowser + + # - template: /eng/pipelines/common/templates/wasm-library-tests.yml + # parameters: + # platforms: + # - browser_wasm_win + # alwaysRun: ${{ variables.isRollingBuild }} + # scenarios: + # - WasmTestOnBrowser + + # # EAT Library tests - only run on linux + # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + # parameters: + # platforms: + # - browser_wasm + # nameSuffix: _EAT + # runAOT: false + # shouldRunSmokeOnly: false + # alwaysRun: ${{ variables.isRollingBuild }} + + # # AOT Library tests + # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + # parameters: + # platforms: + # - browser_wasm + # nameSuffix: _AOT + # runAOT: true + # shouldRunSmokeOnly: true + # alwaysRun: ${{ variables.isRollingBuild }} + + # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + # parameters: + # platforms: + # - browser_wasm_win + # nameSuffix: _AOT + # runAOT: true + # shouldRunSmokeOnly: true + # alwaysRun: ${{ variables.isRollingBuild }} + + # # Wasm.Build.Tests + # - template: /eng/pipelines/common/templates/wasm-build-tests.yml + # parameters: + # platforms: + # - browser_wasm + # - browser_wasm_win + # alwaysRun: ${{ variables.isRollingBuild }} + + # # Wasm Debugger tests + # - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml + # parameters: + # platforms: + # - browser_wasm + # - browser_wasm_win + # alwaysRun: ${{ variables.isRollingBuild }} + + # # Wasm runtime tests + # - template: /eng/pipelines/common/templates/wasm-runtime-tests.yml + # parameters: + # platforms: + # - browser_wasm + # alwaysRun: ${{ variables.isRollingBuild }} + + # # Build and Smoke Tests only - Wasm Threading Legs + # - template: /eng/pipelines/common/templates/wasm-library-tests.yml + # parameters: + # platforms: + # - browser_wasm + # nameSuffix: _Threading_Smoke + # extraBuildArgs: /p:MonoWasmBuildVariant=multithread /p:_WasmPThreadPoolSize=8 + # shouldRunSmokeOnly: true + # alwaysRun: ${{ variables.isRollingBuild }} + # scenarios: + # - WasmTestOnBrowser + + # - template: /eng/pipelines/common/templates/wasm-build-only.yml + # parameters: + # platforms: + # - browser_wasm + # nameSuffix: _Threading_PerfTracing + # extraBuildArgs: /p:MonoWasmBuildVariant=perftrace + # alwaysRun: ${{ variables.isRollingBuild }} + + # # WASI/WASM + + # - template: /eng/pipelines/common/templates/wasm-library-tests.yml + # parameters: + # platforms: + # - wasi_wasm + # - wasi_wasm_win + # nameSuffix: '_Smoke' + # extraBuildArgs: /p:EnableAggressiveTrimming=true /p:RunWasmSamples=true + # shouldContinueOnError: true + # shouldRunSmokeOnly: true + # alwaysRun: ${{ variables.isRollingBuild }} + # scenarios: + # - normal + + # - template: /eng/pipelines/common/templates/wasm-build-tests.yml + # parameters: + # platforms: + # - wasi_wasm + # - wasi_wasm_win + # alwaysRun: ${{ variables.isRollingBuild }} + + # # + # # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size + # # Build the whole product using Mono and run libraries tests + # # + # - 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: + # - ios_arm64 + # - tvos_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: AllSubsets_Mono + # buildArgs: -s mono+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true + # timeoutInMinutes: 180 + # 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_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + # # extra steps, run tests + # extraStepsTemplate: /eng/pipelines/libraries/helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: Mono_$(_BuildConfig) + # extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true + # condition: >- + # or( + # eq(variables['librariesContainsChange'], true), + # eq(variables['monoContainsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # MacCatalyst interp - requires AOT Compilation and Interp flags + # # Build the whole product using Mono and run libraries tests + # # + # # + # # Disabled pending queue backup investigation + # # + # #- 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: + # # - maccatalyst_x64 + # # - ${{ if eq(variables['isRollingBuild'], true) }}: + # # - maccatalyst_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: AllSubsets_Mono + # # buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true + # # timeoutInMinutes: 180 + # # 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_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)) + + # # + # # Build Mono and Installer on LLVMJIT mode + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMJIT + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + # 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_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # runtimeFlavor: mono + # platforms: + # - linux_x64 + # - linux_arm64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMJIT + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + # 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_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono and Installer on LLVMAOT mode + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - linux_x64 + # - linux_arm64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMAOT + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true + # 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_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMAOT + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true + # 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_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono debug + # # Only when mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: debug + # platforms: + # - osx_x64 + # - osx_arm64 + # - linux_x64 + # - linux_arm64 + # # - linux_musl_arm64 + # - windows_x64 + # - windows_x86 + # # - windows_arm64 + # jobParameters: + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono release AOT cross-compilers + # # Only when mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_x64 + # # - linux_arm64 + # # - linux_musl_arm64 + # - windows_x64 + # # - windows_x86 + # # - windows_arm64 + # jobParameters: + # runtimeVariant: crossaot + # dependsOn: + # - mono_android_offsets + # - mono_browser_offsets + # monoCrossAOTTargetOS: + # - android + # - browser + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - osx_x64 + # jobParameters: + # runtimeVariant: crossaot + # dependsOn: + # - mono_android_offsets + # - mono_browser_offsets + # - mono_tvos_offsets + # - mono_ios_offsets + # - mono_maccatalyst_offsets + # monoCrossAOTTargetOS: + # - android + # - browser + # - tvos + # - ios + # - maccatalyst + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_arm64 + # - osx_arm64 + # jobParameters: + # runtimeVariant: crossaot + # dependsOn: + # - mono_browser_offsets + # monoCrossAOTTargetOS: + # - browser + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono release + # # Only when libraries or mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_x64 + # # - linux_musl_arm64 + # - windows_x64 + # - windows_x86 + # # - windows_arm64 + # jobParameters: + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono release + # # Only when libraries, mono, or the runtime tests changed + # # Currently only these architectures are needed for the runtime tests. + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - osx_x64 + # - linux_arm64 + # jobParameters: + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build Mono release with LLVM AOT + # # Only when mono, or the runtime tests changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_x64 + # - linux_arm64 + # jobParameters: + # runtimeVariant: llvmaot + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build libraries using live CoreLib + # # These set of libraries are built always no matter what changed + # # The reason for that is because Corelib and Installer needs it and + # # These are part of the test matrix for Libraries changes. + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: Release + # platforms: + # - linux_arm + # - linux_musl_arm + # - linux_musl_arm64 + # - windows_arm64 + # - windows_x86 + # jobParameters: + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - linux_arm64 + # - linux_musl_x64 + # - linux_x64 + # - osx_arm64 + # - osx_x64 + # - windows_x64 + # - freebsd_x64 + # jobParameters: + # testScope: innerloop + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Libraries debug build that only runs when coreclr is changed + # # Only do this on PR builds since we use the Release builds for these test runs in CI + # # and those are already built above + # # + # - ${{ if eq(variables['isRollingBuild'], false) }}: + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: Debug + # platforms: + # - windows_x86 + # jobParameters: + # condition: >- + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) + + # # + # # Libraries release build that only runs when coreclr is changed in PRs + # # We need these for checked coreclr + release libraries tests runs. + # # + # - ${{ if eq(variables['isRollingBuild'], false) }}: + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: Release + # platforms: + # - linux_x64 + # - windows_x64 + # jobParameters: + # condition: >- + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: Release + # platforms: + # - windows_x86 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # framework: net48 + # runTests: true + # testScope: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - windows_x64 + # jobParameters: + # framework: allConfigurations + # runTests: true + # useHelix: false + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Installer Build and Test + # # These are always built since they only take like 15 minutes + # # we expect these to be done before we finish libraries or coreclr testing. + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/installer/jobs/build-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - linux_musl_arm + # - linux_musl_arm64 + # - windows_x86 + # - windows_arm64 + # - linux_arm + # jobParameters: + # liveRuntimeBuildConfig: release + # liveLibrariesBuildConfig: Release + # runOnlyIfDependenciesSucceeded: true + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/installer/jobs/build-job.yml + # buildConfig: Release + # platforms: + # - osx_arm64 + # - osx_x64 + # - linux_x64 + # - linux_arm64 + # - linux_musl_x64 + # - windows_x64 + # - freebsd_x64 + # jobParameters: + # liveRuntimeBuildConfig: release + # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # runOnlyIfDependenciesSucceeded: true + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # CoreCLR Test builds using live libraries release build + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + # buildConfig: checked + # platforms: + # - CoreClrTestBuildHost # Either osx_x64 or linux_x64 + # jobParameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # CoreCLR Test executions using live libraries + # # Only when CoreCLR is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + # buildConfig: checked + # platforms: + # - linux_arm + # - windows_x86 + # - windows_arm64 + # helixQueueGroup: pr + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # jobParameters: + # testGroup: innerloop + # liveLibrariesBuildConfig: Release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + # buildConfig: checked + # platforms: + # - osx_x64 + # - linux_x64 + # - linux_arm64 + # - windows_x64 + # helixQueueGroup: pr + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # jobParameters: + # testGroup: innerloop + # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + # buildConfig: checked + # platforms: + # - osx_arm64 + # helixQueueGroup: pr + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # jobParameters: + # testGroup: innerloop + # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Mono Test builds with CoreCLR runtime tests using live libraries debug build + # # Only when Mono is changed + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - CoreClrTestBuildHost # Either osx_x64 or linux_x64 + # jobParameters: + # testGroup: innerloop + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - windows_x64 + # helixQueueGroup: pr + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # jobParameters: + # testGroup: innerloop + # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # liveRuntimeBuildConfig: release + # runtimeVariant: minijit + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Build the whole product using Mono and run runtime tests + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # - linux_arm64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests + # runtimeVariant: minijit + # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release + # timeoutInMinutes: 180 + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: Mono_Release + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + + # # + # # Mono CoreCLR runtime Test executions using live libraries in interpreter mode + # # Only when Mono is changed + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests + # runtimeVariant: monointerpreter + # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release + # timeoutInMinutes: 180 + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: Mono_Release + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # # + # # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT + # # Only when Mono is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - linux_x64 + # # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation + # #- linux_arm64 + # variables: + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests + # runtimeVariant: llvmaot + # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true + # timeoutInMinutes: 180 + + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # llvmAotStepContainer: linux_x64_llvmaot + # testRunNamePrefixSuffix: Mono_Release + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + + # # + # # Libraries Release Test Execution against a release mono runtime. + # # Only when libraries or mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # runtimeFlavor: mono + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # # - windows_x64 + # - osx_x64 + # - linux_arm64 + # - linux_x64 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # isOfficialBuild: false + # runtimeDisplayName: mono + # testScope: innerloop + # liveRuntimeBuildConfig: release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Libraries Release Test Execution against a release mono interpreter runtime. + # # Only when libraries or mono changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # runtimeFlavor: mono + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # # - windows_x64 + # #- osx_x64 + # - linux_x64 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # isOfficialBuild: false + # interpreter: true + # runtimeDisplayName: mono_interpreter + # testScope: innerloop + # liveRuntimeBuildConfig: release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Libraries Release Test Execution against a release coreclr runtime + # # Only when the PR contains a libraries change + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: Release + # platforms: + # - windows_x86 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # isOfficialBuild: false + # testScope: innerloop + # liveRuntimeBuildConfig: release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Libraries Debug Test Execution against a release coreclr runtime + # # Only when the PR contains a libraries change + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - windows_x64 + # - osx_x64 + # - linux_x64 + # - linux_musl_x64 + # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + # jobParameters: + # isOfficialBuild: false + # testScope: innerloop + # liveRuntimeBuildConfig: release + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # The next three jobs run checked coreclr + libraries tests. + # # The matrix looks like the following, where the right columns specify which configurations + # # the libraries tests are built in. + # # ________________________________________ + # # | Platform | PR | Rolling | + # # | ---------------- | ------- | ------- | + # # | linux-arm64 | Debug | Release | + # # | windows-x86 | Debug | Release | + # # | linux-musl-x64 | Debug | Release | + # # | OSX-x64 | Debug | Release | + # # | linux-musl-arm | Release | Release | + # # | linux-musl-arm64 | Release | Release | + # # | linux-x64 | Release | Release | + # # | windows-x64 | Release | Release | + + # # + # # Debug (PR) / Release (rolling) Libraries Test Execution against a checked runtime + # # Only when the PR contains a coreclr change + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - linux_arm64 + # - windows_x86 + # - linux_musl_x64 + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # helixQueueGroup: libraries + # jobParameters: + # testScope: innerloop + # liveRuntimeBuildConfig: checked + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Release Libraries Test Execution against a checked runtime + # # Only if CoreCLR or Libraries is changed + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: Release + # platforms: + # - linux_musl_arm + # - linux_musl_arm64 + # - linux_x64 + # - windows_x64 + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # helixQueueGroup: libraries + # jobParameters: + # testScope: innerloop + # liveRuntimeBuildConfig: checked + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/run-test-job.yml + # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + # platforms: + # - osx_x64 + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # helixQueueGroup: libraries + # jobParameters: + # testScope: innerloop + # liveRuntimeBuildConfig: checked + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + + # # + # # Sourcebuild legs + # # We have 3 important legs for source-build: + # # - Centos.8 (ensures that known non-portable RID is working) + # # - Linux-x64 portable (used for dependency flow and downstream PR verification) + # # - Banana.24 - Non-existent RID to ensure we don't break RIDs we don't know about. + # # + # # Running all of these everywhere is wasteful. Run Banana.24 and CentOS.8 in rolling CI, + # # Run Linux-x64 in PR. + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # helixQueueGroup: pr + # platforms: + # - SourceBuild_centos8_x64 + # jobParameters: + # nameSuffix: centos8SourceBuild + # extraStepsParameters: + # name: SourceBuildPackages + # timeoutInMinutes: 95 + # condition: eq(variables['isRollingBuild'], true) + + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # helixQueueGroup: pr + # platforms: + # - SourceBuild_banana24_x64 + # jobParameters: + # nameSuffix: banana24SourceBuild + # extraStepsParameters: + # name: SourceBuildPackages + # timeoutInMinutes: 95 + # condition: eq(variables['isRollingBuild'], true) + + + # + # Build the whole product using NativeAOT for iOS/tvOS and run runtime tests with iOS/tvOS devices # - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/common/global-build-job.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Debug - platforms: - - linux_x64 - - windows_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - timeoutInMinutes: 120 - nameSuffix: NativeAOT - buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - extraStepsParameters: - creator: dotnet-bot - testBuildArgs: nativeaot tree nativeaot - liveLibrariesBuildConfig: Release - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) - - # - # CoreCLR NativeAOT checked build and smoke tests - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Checked - platforms: - - windows_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - timeoutInMinutes: 120 - nameSuffix: NativeAOT - buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - extraStepsParameters: - creator: dotnet-bot - testBuildArgs: 'nativeaot tree ";nativeaot;Loader;Interop;tracing/eventpipe/config;" test tracing/eventcounter/runtimecounters.csproj /p:BuildNativeAotFrameworkObjects=true' - liveLibrariesBuildConfig: Release - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) - - # - # CoreCLR NativeAOT release build and smoke tests - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - platforms: - - linux_x64 - - windows_x64 - - osx_x64 - - linux_arm64 - - windows_arm64 - - osx_arm64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - timeoutInMinutes: 120 - nameSuffix: NativeAOT - buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - extraStepsParameters: - creator: dotnet-bot - testBuildArgs: 'nativeaot tree ";nativeaot;tracing/eventpipe/simpleprovidervalidation;"' - liveLibrariesBuildConfig: Release - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) - - # - # CoreCLR NativeAOT release build and libraries tests - # Only when CoreCLR or library is 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 - platforms: - - windows_arm64 - - linux_arm64 - - osx_arm64 - jobParameters: - testGroup: innerloop - isSingleFile: true - nameSuffix: NativeAOT_Libraries - buildArgs: -s clr.aot+host.native+libs+libs.tests -c $(_BuildConfig) /p:TestNativeAot=true /p:RunSmokeTestsOnly=true /p:ArchiveTests=true - timeoutInMinutes: 240 # Doesn't actually take long, but we've seen the ARM64 Helix queue often get backlogged for 2+ hours - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isFullMatrix'], true)) - - # Build and test clr tools - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: checked - platforms: - - linux_x64 - jobParameters: - timeoutInMinutes: 120 - nameSuffix: CLR_Tools_Tests - buildArgs: -s clr.aot+clr.iltools+libs+clr.toolstests -c $(_BuildConfig) -test - enablePublishTestResults: true - testResultsFormat: 'xunit' - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # Build Mono AOT offset headers once, for consumption elsewhere - # Only when mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml - buildConfig: release - platforms: - - android_x64 - - browser_wasm - - tvos_arm64 - - ios_arm64 - - maccatalyst_x64 - jobParameters: - isOfficialBuild: ${{ variables.isOfficialBuild }} - # needed by crossaot - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # Build the whole product using Mono runtime - # Only when libraries, mono or installer are changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: mono - platforms: - - tvossimulator_x64 - - linux_arm - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - 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_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - linux_musl_x64 - - linux_riscv64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - 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_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # WebAssembly legs - # - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm - alwaysRun: ${{ variables.isRollingBuild }} - scenarios: - - normal - - WasmTestOnBrowser - - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm_win - alwaysRun: ${{ variables.isRollingBuild }} - scenarios: - - WasmTestOnBrowser - - # EAT Library tests - only run on linux - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - browser_wasm - nameSuffix: _EAT - runAOT: false - shouldRunSmokeOnly: false - alwaysRun: ${{ variables.isRollingBuild }} - - # AOT Library tests - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - browser_wasm - nameSuffix: _AOT - runAOT: true - shouldRunSmokeOnly: true - alwaysRun: ${{ variables.isRollingBuild }} - - - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - parameters: - platforms: - - browser_wasm_win - nameSuffix: _AOT - runAOT: true - shouldRunSmokeOnly: true - alwaysRun: ${{ variables.isRollingBuild }} - - # Wasm.Build.Tests - - template: /eng/pipelines/common/templates/wasm-build-tests.yml - parameters: - platforms: - - browser_wasm - - browser_wasm_win - alwaysRun: ${{ variables.isRollingBuild }} - - # Wasm Debugger tests - - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml - parameters: - platforms: - - browser_wasm - - browser_wasm_win - alwaysRun: ${{ variables.isRollingBuild }} - - # Wasm runtime tests - - template: /eng/pipelines/common/templates/wasm-runtime-tests.yml - parameters: - platforms: - - browser_wasm - alwaysRun: ${{ variables.isRollingBuild }} - - # Build and Smoke Tests only - Wasm Threading Legs - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm - nameSuffix: _Threading_Smoke - extraBuildArgs: /p:MonoWasmBuildVariant=multithread /p:_WasmPThreadPoolSize=8 - shouldRunSmokeOnly: true - alwaysRun: ${{ variables.isRollingBuild }} - scenarios: - - WasmTestOnBrowser - - - template: /eng/pipelines/common/templates/wasm-build-only.yml - parameters: - platforms: - - browser_wasm - nameSuffix: _Threading_PerfTracing - extraBuildArgs: /p:MonoWasmBuildVariant=perftrace - alwaysRun: ${{ variables.isRollingBuild }} - - # WASI/WASM - - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - wasi_wasm - - wasi_wasm_win - nameSuffix: '_Smoke' - extraBuildArgs: /p:EnableAggressiveTrimming=true /p:RunWasmSamples=true - shouldContinueOnError: true - shouldRunSmokeOnly: true - alwaysRun: ${{ variables.isRollingBuild }} - scenarios: - - normal - - - template: /eng/pipelines/common/templates/wasm-build-tests.yml - parameters: - platforms: - - wasi_wasm - - wasi_wasm_win - alwaysRun: ${{ variables.isRollingBuild }} - - # - # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size - # Build the whole product using Mono and run libraries tests - # - - 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 + runtimeFlavor: nativeaot + # isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + # isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - ios_arm64 - - tvos_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: AllSubsets_Mono - buildArgs: -s mono+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true - timeoutInMinutes: 180 - 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_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true - condition: >- - or( - eq(variables['librariesContainsChange'], true), - eq(variables['monoContainsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # MacCatalyst interp - requires AOT Compilation and Interp flags - # Build the whole product using Mono and run libraries tests - # - # - # Disabled pending queue backup investigation - # - #- 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: - # - maccatalyst_x64 - # - ${{ if eq(variables['isRollingBuild'], true) }}: - # - maccatalyst_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: AllSubsets_Mono - # buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true - # timeoutInMinutes: 180 - # 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_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)) - - # - # Build Mono and Installer on LLVMJIT mode - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMJIT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - 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_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: mono - platforms: - - linux_x64 - - linux_arm64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMJIT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - 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_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono and Installer on LLVMAOT mode - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - linux_x64 - - linux_arm64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMAOT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - 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_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMAOT - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - 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_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono debug - # Only when mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: debug - platforms: - - osx_x64 - - osx_arm64 - - linux_x64 - - linux_arm64 - # - linux_musl_arm64 - - windows_x64 - - windows_x86 - # - windows_arm64 - jobParameters: - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono release AOT cross-compilers - # Only when mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 - # - linux_arm64 - # - linux_musl_arm64 - - windows_x64 - # - windows_x86 - # - windows_arm64 - jobParameters: - runtimeVariant: crossaot - dependsOn: - - mono_android_offsets - - mono_browser_offsets - monoCrossAOTTargetOS: - - android - - browser - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - osx_x64 - jobParameters: - runtimeVariant: crossaot - dependsOn: - - mono_android_offsets - - mono_browser_offsets - - mono_tvos_offsets - - mono_ios_offsets - - mono_maccatalyst_offsets - monoCrossAOTTargetOS: - - android - - browser - - tvos - - ios - - maccatalyst - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_arm64 - - osx_arm64 - jobParameters: - runtimeVariant: crossaot - dependsOn: - - mono_browser_offsets - monoCrossAOTTargetOS: - - browser - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono release - # Only when libraries or mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 - # - linux_musl_arm64 - - windows_x64 - - windows_x86 - # - windows_arm64 - jobParameters: - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono release - # Only when libraries, mono, or the runtime tests changed - # Currently only these architectures are needed for the runtime tests. - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - osx_x64 - - linux_arm64 - jobParameters: - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build Mono release with LLVM AOT - # Only when mono, or the runtime tests changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 - - linux_arm64 - jobParameters: - runtimeVariant: llvmaot - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build libraries using live CoreLib - # These set of libraries are built always no matter what changed - # The reason for that is because Corelib and Installer needs it and - # These are part of the test matrix for Libraries changes. - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - linux_arm - - linux_musl_arm - - linux_musl_arm64 - - windows_arm64 - - windows_x86 - jobParameters: - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - linux_arm64 - - linux_musl_x64 - - linux_x64 - - osx_arm64 - - osx_x64 - - windows_x64 - - freebsd_x64 - jobParameters: - testScope: innerloop - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Libraries debug build that only runs when coreclr is changed - # Only do this on PR builds since we use the Release builds for these test runs in CI - # and those are already built above - # - - ${{ if eq(variables['isRollingBuild'], false) }}: - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Debug - platforms: - - windows_x86 - jobParameters: - condition: >- - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) - - # - # Libraries release build that only runs when coreclr is changed in PRs - # We need these for checked coreclr + release libraries tests runs. - # - - ${{ if eq(variables['isRollingBuild'], false) }}: - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - linux_x64 - - windows_x64 - jobParameters: - condition: >- - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - windows_x86 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - framework: net48 - runTests: true - testScope: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - windows_x64 - jobParameters: - framework: allConfigurations - runTests: true - useHelix: false - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Installer Build and Test - # These are always built since they only take like 15 minutes - # we expect these to be done before we finish libraries or coreclr testing. - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/installer/jobs/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - linux_musl_arm - - linux_musl_arm64 - - windows_x86 - - windows_arm64 - - linux_arm - jobParameters: - liveRuntimeBuildConfig: release - liveLibrariesBuildConfig: Release - runOnlyIfDependenciesSucceeded: true - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/installer/jobs/build-job.yml - buildConfig: Release - platforms: - - osx_arm64 - - osx_x64 - - linux_x64 - - linux_arm64 - - linux_musl_x64 - - windows_x64 - - freebsd_x64 - jobParameters: - liveRuntimeBuildConfig: release - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runOnlyIfDependenciesSucceeded: true - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # CoreCLR Test builds using live libraries release build - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - buildConfig: checked - platforms: - - CoreClrTestBuildHost # Either osx_x64 or linux_x64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # CoreCLR Test executions using live libraries - # Only when CoreCLR is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: checked - platforms: - - linux_arm - - windows_x86 - - windows_arm64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: Release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: checked - platforms: - - osx_x64 - - linux_x64 - - linux_arm64 - - windows_x64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: checked - platforms: - - osx_arm64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Mono Test builds with CoreCLR runtime tests using live libraries debug build - # Only when Mono is changed - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - CoreClrTestBuildHost # Either osx_x64 or linux_x64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - windows_x64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - liveRuntimeBuildConfig: release - runtimeVariant: minijit - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Build the whole product using Mono and run runtime tests - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - osx_x64 - - linux_arm64 + # - tvos_arm64 variables: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: pr/dotnet/runtime/$(Build.SourceBranch) + # - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: + # - name: _HelixSource + # value: ci/dotnet/runtime/$(Build.SourceBranch) - name: timeoutPerTestInMinutes value: 60 - name: timeoutPerTestCollectionInMinutes value: 180 jobParameters: testGroup: innerloop - nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests - runtimeVariant: minijit - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_Release - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - - # - # Mono CoreCLR runtime Test executions using live libraries in interpreter mode - # Only when Mono is changed - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - osx_x64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests - runtimeVariant: monointerpreter - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release - timeoutInMinutes: 180 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_Release + nameSuffix: AllSubsets_NativeAOT_RuntimeTests + buildArgs: clr+clr.aot+libs+packs-c $(_BuildConfig) + timeoutInMinutes: 240 + # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - # - # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT - # Only when Mono is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - linux_x64 - # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation - #- linux_arm64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests - runtimeVariant: llvmaot - buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true - timeoutInMinutes: 180 - - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isRollingBuild'], true)) + parameters: + testGroup: innerloop extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml extraStepsParameters: creator: dotnet-bot - llvmAotStepContainer: linux_x64_llvmaot - testRunNamePrefixSuffix: Mono_Release - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - - # - # Libraries Release Test Execution against a release mono runtime. - # Only when libraries or mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - runtimeFlavor: mono - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - # - windows_x64 - - osx_x64 - - linux_arm64 - - linux_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - runtimeDisplayName: mono - testScope: innerloop - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Libraries Release Test Execution against a release mono interpreter runtime. - # Only when libraries or mono changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - runtimeFlavor: mono - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - # - windows_x64 - #- osx_x64 - - linux_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - interpreter: true - runtimeDisplayName: mono_interpreter - testScope: innerloop - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Libraries Release Test Execution against a release coreclr runtime - # Only when the PR contains a libraries change - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: Release - platforms: - - windows_x86 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - testScope: innerloop - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Libraries Debug Test Execution against a release coreclr runtime - # Only when the PR contains a libraries change - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - windows_x64 - - osx_x64 - - linux_x64 - - linux_musl_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - testScope: innerloop - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # The next three jobs run checked coreclr + libraries tests. - # The matrix looks like the following, where the right columns specify which configurations - # the libraries tests are built in. - # ________________________________________ - # | Platform | PR | Rolling | - # | ---------------- | ------- | ------- | - # | linux-arm64 | Debug | Release | - # | windows-x86 | Debug | Release | - # | linux-musl-x64 | Debug | Release | - # | OSX-x64 | Debug | Release | - # | linux-musl-arm | Release | Release | - # | linux-musl-arm64 | Release | Release | - # | linux-x64 | Release | Release | - # | windows-x64 | Release | Release | - - # - # Debug (PR) / Release (rolling) Libraries Test Execution against a checked runtime - # Only when the PR contains a coreclr change - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - linux_arm64 - - windows_x86 - - linux_musl_x64 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Release Libraries Test Execution against a checked runtime - # Only if CoreCLR or Libraries is changed - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: Release - platforms: - - linux_musl_arm - - linux_musl_arm64 - - linux_x64 - - windows_x64 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - osx_x64 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isRollingBuild'], true)) - - # - # Sourcebuild legs - # We have 3 important legs for source-build: - # - Centos.8 (ensures that known non-portable RID is working) - # - Linux-x64 portable (used for dependency flow and downstream PR verification) - # - Banana.24 - Non-existent RID to ensure we don't break RIDs we don't know about. - # - # Running all of these everywhere is wasteful. Run Banana.24 and CentOS.8 in rolling CI, - # Run Linux-x64 in PR. - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - helixQueueGroup: pr - platforms: - - SourceBuild_centos8_x64 - jobParameters: - nameSuffix: centos8SourceBuild - extraStepsParameters: - name: SourceBuildPackages - timeoutInMinutes: 95 - condition: eq(variables['isRollingBuild'], true) - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - helixQueueGroup: pr - platforms: - - SourceBuild_banana24_x64 - jobParameters: - nameSuffix: banana24SourceBuild - extraStepsParameters: - name: SourceBuildPackages - timeoutInMinutes: 95 - condition: eq(variables['isRollingBuild'], true) + # FIXME: Currently, tracing/eventpipe tests are only enabled on iOS platforms. It should be expanded to include all runtime tests. Tracking issue: https://github.com/dotnet/runtime/issues/84254 + testBuildArgs: tree tracing/eventpipe + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) \ No newline at end of file diff --git a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets index 69b7b1fa452a8e..8b1846092059a8 100644 --- a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets +++ b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets @@ -72,8 +72,8 @@ Text="Add a PackageReference for '$(_hostPackageName)' to allow cross-compilation for $(_targetArchitecture)" /> - - + + + + <_NETCoreAppFrameworkReference Include="@(ResolvedFrameworkReference)" Condition="'%(ResolvedFrameworkReference.RuntimePackName)' == 'Microsoft.NETCore.App.Runtime.NativeAOT.$(RuntimeIdentifier)'" /> + + $(IlcHostPackagePath)\tools\ - $(RuntimePackagePath)\sdk\ - $(RuntimePackagePath)\framework\ - $(RuntimePackagePath)\framework\ + $(RuntimePackagePath)\framework\ + <_NETCoreAppRuntimePackPath>%(_NETCoreAppFrameworkReference.RuntimePackPath)/runtimes/$(RuntimeIdentifier)/ + $(_NETCoreAppRuntimePackPath)\native\ + $(RuntimePackagePath)\framework\ + $(IlcFrameworkNativePath) + $(RuntimePackagePath)\sdk\ $(RuntimePackagePath)\mibc\ - - + + + + + + + - - + + + + diff --git a/src/installer/pkg/projects/nativeaot-packages.proj b/src/installer/pkg/projects/nativeaot-packages.proj index 592b4565154216..b9ec2ee88108ca 100644 --- a/src/installer/pkg/projects/nativeaot-packages.proj +++ b/src/installer/pkg/projects/nativeaot-packages.proj @@ -3,7 +3,7 @@ - + diff --git a/src/mono/sample/iOS-NativeAOT/Makefile b/src/mono/sample/iOS-NativeAOT/Makefile index e1e295a75d9e71..db2c507cc0e757 100644 --- a/src/mono/sample/iOS-NativeAOT/Makefile +++ b/src/mono/sample/iOS-NativeAOT/Makefile @@ -4,7 +4,7 @@ TOP=../../../../ BUILD_CONFIG?=Debug TARGET_ARCH?=$(shell . $(TOP)eng/native/init-os-and-arch.sh && echo $${arch}) -TARGET_OS?=iossimulator +TARGET_OS?=ios DEPLOY_AND_RUN?=false STRIP_DEBUG_SYMBOLS?=false diff --git a/src/mono/sample/iOS-NativeAOT/Program.csproj b/src/mono/sample/iOS-NativeAOT/Program.csproj index c76b6530d811d3..d02897d363d617 100644 --- a/src/mono/sample/iOS-NativeAOT/Program.csproj +++ b/src/mono/sample/iOS-NativeAOT/Program.csproj @@ -37,7 +37,7 @@ - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) $(IlcPath) $(CoreCLRAotSdkDir) $(LibrariesAllBinArtifactsPath) diff --git a/src/tasks/AppleAppBuilder/Templates/CMakeLists.txt.template b/src/tasks/AppleAppBuilder/Templates/CMakeLists.txt.template index 29f0b6eae626ca..a32f62482cdec3 100644 --- a/src/tasks/AppleAppBuilder/Templates/CMakeLists.txt.template +++ b/src/tasks/AppleAppBuilder/Templates/CMakeLists.txt.template @@ -76,14 +76,11 @@ target_link_libraries( "-lc++" "-liconv" %NativeLibrariesToLink% -%APP_LINKER_ARGS% + %APP_LINK_LIBRARIES% ) -if(%UseNativeAOTRuntime%) -target_link_libraries( - %ProjectName% - PRIVATE - "-Wl,-u,_NativeAOT_StaticInitialization" - "-Wl,-segprot,__THUNKS,rx,rx" -) -endif() \ No newline at end of file +set_target_properties( + %ProjectName% + PROPERTIES LINK_FLAGS + %EXTRA_LINKER_ARGS% +) \ No newline at end of file diff --git a/src/tasks/AppleAppBuilder/Xcode.cs b/src/tasks/AppleAppBuilder/Xcode.cs index 58d183b698fdd4..616d267f53af96 100644 --- a/src/tasks/AppleAppBuilder/Xcode.cs +++ b/src/tasks/AppleAppBuilder/Xcode.cs @@ -411,16 +411,12 @@ public string GenerateCMake( frameworks = "\"-framework GSS\""; } - string appLinkerArgs = ""; - foreach(string linkerArg in extraLinkerArgs) - { - appLinkerArgs += $" \"{linkerArg}\"{Environment.NewLine}"; - } - - appLinkerArgs += $" {frameworks}{Environment.NewLine}"; + string appLinkLibraries = $" {frameworks}{Environment.NewLine}"; + string extraLinkerArgsConcat = $"\"{string.Join('\n', extraLinkerArgs)}\""; cmakeLists = cmakeLists.Replace("%NativeLibrariesToLink%", toLink); - cmakeLists = cmakeLists.Replace("%APP_LINKER_ARGS%", appLinkerArgs); + cmakeLists = cmakeLists.Replace("%APP_LINK_LIBRARIES%", appLinkLibraries); + cmakeLists = cmakeLists.Replace("%EXTRA_LINKER_ARGS%", extraLinkerArgsConcat); cmakeLists = cmakeLists.Replace("%AotSources%", aotSources); cmakeLists = cmakeLists.Replace("%AotTargetsList%", aotList); cmakeLists = cmakeLists.Replace("%AotModulesSource%", string.IsNullOrEmpty(aotSources) ? "" : "modules.m"); diff --git a/src/tests/Directory.Build.targets b/src/tests/Directory.Build.targets index 6a6bdcba99dfde..97f54dda52a1db 100644 --- a/src/tests/Directory.Build.targets +++ b/src/tests/Directory.Build.targets @@ -22,6 +22,20 @@ $(NoWarn);CS2008 + + Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink + + + + + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) + $(IlcPath) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) + $(LibrariesAllBinArtifactsPath) + $(LibrariesAllBinArtifactsPath) + + + diff --git a/src/tests/build.proj b/src/tests/build.proj index 3be95646139cf3..4ea31267320311 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -9,6 +9,8 @@ 1 C# $(OutputRID) + <_IsApplePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true + <_IsiOSLikePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true @@ -18,7 +20,7 @@ - + - + @@ -467,18 +469,162 @@ - + + + + true + static + true + <_SymbolPrefix>_ + --flat + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) + $(IlcPath) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) + $(LibrariesAllBinArtifactsPath) + $(LibrariesAllBinArtifactsPath) + + + + + + $([System.IO.Path]::GetDirectoryName($([System.IO.Path]::GetDirectoryName($(_CMDDIR))))) + $([System.IO.Path]::GetFileName($(CMDDIR_Grandparent))) + $([System.String]::Copy('$(_CMDDIR)').Replace("$(CMDDIR_Grandparent)/","")) + $([System.IO.Path]::GetFileName($(_CMDDIR))) + $([System.String]::Copy('$(CategoryWithSlash)').Replace('/','_')) + $([System.String]::Copy('$(CategoryWithSlash)').Replace('/', '.')).XUnitWrapper.dll + $(CMDDIR_GrandParent)/$(CategoryWithSlash)/$(XUnitWrapperFileName) + $(IntermediateOutputPath)\iOSApps\$(Category) + $(XUnitTestBinBase)$(CategoryWithSlash)\$(Category).app + + + + $(Category) + iossimulator + ios + tvossimulator + tvos + $(ArtifactsBinDir)microsoft.netcore.app.runtime.$(RuntimePackOSSuffix)-$(TargetArchitecture)/$(Configuration)/runtimes/$(RuntimePackOSSuffix)-$(TargetArchitecture) + $(MicrosoftNetCoreAppRuntimePackDir)/native + + + + + True + + + + + + + + + + + + + + + @(TestDlls->'%(Filename)') + + + + $([MSBuild]::NormalizeDirectory('$(BuildDir)', 'AppBundle')) + + + + + + + + + + + + + + + + <_LinkerFlagsToDrop Include="@(NativeFramework->'-framework %(Identity)')" /> + <_LinkerFlagsToDrop Include="@(LinkerArg)" Condition="$([System.String]::new('%(Identity)').Contains('swift'))" /> + + + + + + <_NativeDependencies>$(IntermediateOutputPath)\..\$(TestingGroup)\$(CategoryWithSlash)\$(TestName)\native\$(TestName).o + + + + + + + + + + + + + + + + + + + + + _CMDDIR=%(TestDirectories.Identity) + Condition="'@(TestDirectories)' != '' and '$(TestBuildMode)' != 'nativeaot'" + /> + + + + + + _CMDDIR=%(SubTestDirectories.Identity) + + + @@ -592,6 +738,12 @@ $(GroupBuildCmd) /bl:$(ArtifactsDir)/log/$(Configuration)/InnerManagedTestBuild.$(__TestGroupToBuild).binlog $(GroupBuildCmd) "/p:CrossBuild=true" $(GroupBuildCmd) "/p:DefaultBuildAllTarget=BuildNativeAot" + $(GroupBuildCmd) "/p:UseNativeAOTRuntime=true" + $(GroupBuildCmd) "/p:NativeLib=static" + $(GroupBuildCmd) "/p:CustomNativeMain=true" + $(GroupBuildCmd) "/p:NativeCompilationDuringPublish=false" + $(GroupBuildCmd) "/p:CustomIlcCompileDependsOn=true" + $(GroupBuildCmd) "/p:InvariantGlobalization=true" $(GroupBuildCmd) "/p:IlcMultiModule=true" $(GroupBuildCmd) "/p:BuildNativeAotFrameworkObjects=true" diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs index 2617cb57320dbe..1b48b284dd42d3 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs @@ -51,7 +51,7 @@ public static int Run() result = Fail; } - TestLinqExpressions.Run(); + // TestLinqExpressions.Run(); TestDefaultInterfaceMethods.Run(); return result; diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs index 8e70602728f5ab..dee6e112ec9d9d 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs @@ -53,7 +53,7 @@ internal static int Run() TestNullableCasting.Run(); TestVariantCasting.Run(); TestMDArrayAddressMethod.Run(); - TestNativeLayoutGeneration.Run(); + // TestNativeLayoutGeneration.Run(); TestByRefLikeVTables.Run(); TestFunctionPointerLoading.Run(); diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs index f163dbba5ba6c7..85e62ab572adbc 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs @@ -17,8 +17,8 @@ public static int Run() if (TestInterfaceCache() == Fail) return Fail; - if (TestAVInInterfaceCache() == Fail) - return Fail; + // if (TestAVInInterfaceCache() == Fail) + // return Fail; if (TestMultipleInterfaces() == Fail) return Fail; diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs index b20f9556a40354..39c4b04cbd4aff 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs @@ -62,8 +62,8 @@ public static int Run() Console.WriteLine(" ThreadPoolTests.WorkQueueDepletionTest"); ThreadPoolTests.WorkQueueDepletionTest(); - Console.WriteLine(" ThreadPoolTests.WorkerThreadStateReset"); - ThreadPoolTests.WorkerThreadStateReset(); + // Console.WriteLine(" ThreadPoolTests.WorkerThreadStateReset"); + // ThreadPoolTests.WorkerThreadStateReset(); // This test is not applicable (and will not pass) on Windows since it uses the Windows OS-provided thread pool. // Console.WriteLine(" ThreadPoolTests.SettingMinThreadsWillCreateThreadsUpToMinimum"); From a47e8a0b2e327fc4b66dbf6b1fa05ee6f8389d6a Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 10:42:50 +0200 Subject: [PATCH 002/109] Enable restore projects --- src/tests/build.proj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index 4ea31267320311..f6f786767511dc 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -20,7 +20,7 @@ - + - + From f8bc436454710bcd454590e92dcb6dfdb7cdd38b Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 10:48:32 +0200 Subject: [PATCH 003/109] Temorary disable other tests --- eng/pipelines/runtime-linker-tests.yml | 132 ++++++++++++------------- eng/pipelines/runtime-staging.yml | 82 +++++++-------- 2 files changed, 107 insertions(+), 107 deletions(-) diff --git a/eng/pipelines/runtime-linker-tests.yml b/eng/pipelines/runtime-linker-tests.yml index dc586a230fd934..1f825fd151128f 100644 --- a/eng/pipelines/runtime-linker-tests.yml +++ b/eng/pipelines/runtime-linker-tests.yml @@ -61,71 +61,71 @@ extends: - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - template: /eng/pipelines/common/evaluate-default-paths.yml - # - # Build and Test ILLink in Release config vertical for Windows, Linux and OSX - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - platforms: - - windows_x64 - - osx_x64 - - linux_x64 - jobParameters: - testGroup: innerloop - testResultsFormat: 'vstest' - timeoutInMinutes: 120 - nameSuffix: ILLink_Runtime_Testing - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), - eq(variables['isRollingBuild'], true)) - buildArgs: -s tools.illinktests -test -c $(_BuildConfig) + # # + # # Build and Test ILLink in Release config vertical for Windows, Linux and OSX + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # platforms: + # - windows_x64 + # - osx_x64 + # - linux_x64 + # jobParameters: + # testGroup: innerloop + # testResultsFormat: 'vstest' + # timeoutInMinutes: 120 + # nameSuffix: ILLink_Runtime_Testing + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + # buildArgs: -s tools.illinktests -test -c $(_BuildConfig) - # - # Build Release config vertical for Windows, Linux, and OSX - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - platforms: - - windows_x64 - - osx_x64 - - linux_x64 - jobParameters: - testGroup: innerloop - timeoutInMinutes: 120 - nameSuffix: Runtime_Release - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - buildArgs: -s clr+libs -c $(_BuildConfig) - extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml + # # + # # Build Release config vertical for Windows, Linux, and OSX + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # platforms: + # - windows_x64 + # - osx_x64 + # - linux_x64 + # jobParameters: + # testGroup: innerloop + # timeoutInMinutes: 120 + # nameSuffix: Runtime_Release + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + # buildArgs: -s clr+libs -c $(_BuildConfig) + # extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml - # - # Build Release config vertical for Browser-wasm - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - platforms: - - browser_wasm - jobParameters: - testGroup: innerloop - timeoutInMinutes: 120 - nameSuffix: Runtime_Release - buildArgs: -s mono+libs -c $(_BuildConfig) -p:WasmBuildNative=false - condition: - or( - eq(variables['isRollingBuild'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm_specific_except_wbt_dbg.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['DarcDependenciesChanged.Microsoft_NET_ILLink_Tasks'], true)) - extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml - extraStepsParameters: - extraTestArgs: '/p:WasmBuildNative=false' + # # + # # Build Release config vertical for Browser-wasm + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # platforms: + # - browser_wasm + # jobParameters: + # testGroup: innerloop + # timeoutInMinutes: 120 + # nameSuffix: Runtime_Release + # buildArgs: -s mono+libs -c $(_BuildConfig) -p:WasmBuildNative=false + # condition: + # or( + # eq(variables['isRollingBuild'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm_specific_except_wbt_dbg.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['DarcDependenciesChanged.Microsoft_NET_ILLink_Tasks'], true)) + # extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml + # extraStepsParameters: + # extraTestArgs: '/p:WasmBuildNative=false' diff --git a/eng/pipelines/runtime-staging.yml b/eng/pipelines/runtime-staging.yml index 322faae117b71d..3c1ec70634c11f 100644 --- a/eng/pipelines/runtime-staging.yml +++ b/eng/pipelines/runtime-staging.yml @@ -62,44 +62,44 @@ extends: - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - template: /eng/pipelines/common/evaluate-default-paths.yml - # - # Build the whole product using Mono and run runtime tests with the JIT. - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - iossimulator_x64 - variables: - - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: pr/dotnet/runtime/$(Build.SourceBranch) - - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: ci/dotnet/runtime/$(Build.SourceBranch) - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_RuntimeTests - runtimeVariant: minijit - buildArgs: -s mono+libs -c $(_BuildConfig) - timeoutInMinutes: 240 - condition: >- - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) - ${{ if eq(variables['isRollingBuild'], true) }}: - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # # + # # Build the whole product using Mono and run runtime tests with the JIT. + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + # buildConfig: Release + # runtimeFlavor: mono + # platforms: + # - iossimulator_x64 + # variables: + # - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: + # - name: _HelixSource + # value: pr/dotnet/runtime/$(Build.SourceBranch) + # - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: + # - name: _HelixSource + # value: ci/dotnet/runtime/$(Build.SourceBranch) + # - name: timeoutPerTestInMinutes + # value: 60 + # - name: timeoutPerTestCollectionInMinutes + # value: 180 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono_RuntimeTests + # runtimeVariant: minijit + # buildArgs: -s mono+libs -c $(_BuildConfig) + # timeoutInMinutes: 240 + # condition: >- + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) + # ${{ if eq(variables['isRollingBuild'], true) }}: + # # extra steps, run tests + # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: Mono_$(_BuildConfig) + # extraVariablesTemplates: + # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml From 5f8f2d177dee11648ee1c4232e93e5c50aa51f5d Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 10:51:33 +0200 Subject: [PATCH 004/109] Temorary disable other tests --- eng/pipelines/global-build.yml | 262 ++++++++++++++++----------------- 1 file changed, 131 insertions(+), 131 deletions(-) diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml index 6f80e6ad104525..831b7e0871b7c5 100644 --- a/eng/pipelines/global-build.yml +++ b/eng/pipelines/global-build.yml @@ -40,140 +40,140 @@ extends: - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - template: /eng/pipelines/common/evaluate-default-paths.yml - # - # Build with Release config and Debug runtimeConfiguration - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - platforms: - - windows_x86 - - osx_x64 - - osx_arm64 - jobParameters: - testGroup: innerloop - nameSuffix: Runtime_Debug - buildArgs: -c release -runtimeConfiguration debug - timeoutInMinutes: 120 - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # # + # # Build with Release config and Debug runtimeConfiguration + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # platforms: + # - windows_x86 + # - osx_x64 + # - osx_arm64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: Runtime_Debug + # buildArgs: -c release -runtimeConfiguration debug + # timeoutInMinutes: 120 + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) - # - # Build with Release config and runtimeConfiguration with MSBuild generator - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - platforms: - - windows_x86 - jobParameters: - testGroup: innerloop - nameSuffix: MSBuild_CMake - buildArgs: -c Release -msbuild - timeoutInMinutes: 120 - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # # + # # Build with Release config and runtimeConfiguration with MSBuild generator + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # platforms: + # - windows_x86 + # jobParameters: + # testGroup: innerloop + # nameSuffix: MSBuild_CMake + # buildArgs: -c Release -msbuild + # timeoutInMinutes: 120 + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) - # - # Build with Debug config and Release runtimeConfiguration - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: debug - platforms: - - linux_x64_dev_innerloop - jobParameters: - testGroup: innerloop - nameSuffix: Runtime_Release - buildArgs: -c debug -runtimeConfiguration release - timeoutInMinutes: 120 - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # # + # # Build with Debug config and Release runtimeConfiguration + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: debug + # platforms: + # - linux_x64_dev_innerloop + # jobParameters: + # testGroup: innerloop + # nameSuffix: Runtime_Release + # buildArgs: -c debug -runtimeConfiguration release + # timeoutInMinutes: 120 + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) - # - # Build with RuntimeFlavor only. This exercise code paths where only RuntimeFlavor is - # specified. Catches cases where we depend on Configuration also being specified - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: debug - platforms: - - linux_x64_dev_innerloop - jobParameters: - testGroup: innerloop - nameSuffix: RuntimeFlavor_Mono - buildArgs: /p:RuntimeFlavor=Mono - timeoutInMinutes: 120 - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # # + # # Build with RuntimeFlavor only. This exercise code paths where only RuntimeFlavor is + # # specified. Catches cases where we depend on Configuration also being specified + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: debug + # platforms: + # - linux_x64_dev_innerloop + # jobParameters: + # testGroup: innerloop + # nameSuffix: RuntimeFlavor_Mono + # buildArgs: /p:RuntimeFlavor=Mono + # timeoutInMinutes: 120 + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) - # - # Build Mono + Libraries. This exercises the code path where we build libraries without - # first building CoreCLR - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: debug - platforms: - - windows_x64 - jobParameters: - testGroup: innerloop - nameSuffix: Mono_Libraries - buildArgs: -subset mono+libs /p:RuntimeFlavor=Mono - timeoutInMinutes: 120 - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # # + # # Build Mono + Libraries. This exercises the code path where we build libraries without + # # first building CoreCLR + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: debug + # platforms: + # - windows_x64 + # jobParameters: + # testGroup: innerloop + # nameSuffix: Mono_Libraries + # buildArgs: -subset mono+libs /p:RuntimeFlavor=Mono + # timeoutInMinutes: 120 + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) - # - # Build Libraries AllConfigurations. This exercises the code path where we build libraries for all - # configurations on a non Windows operating system. - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: debug - platforms: - - linux_x64_dev_innerloop - jobParameters: - nameSuffix: Libraries_AllConfigurations - buildArgs: -subset libs -allconfigurations - timeoutInMinutes: 120 - condition: - or( - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - eq(variables['isRollingBuild'], true)) + # # + # # Build Libraries AllConfigurations. This exercises the code path where we build libraries for all + # # configurations on a non Windows operating system. + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: debug + # platforms: + # - linux_x64_dev_innerloop + # jobParameters: + # nameSuffix: Libraries_AllConfigurations + # buildArgs: -subset libs -allconfigurations + # timeoutInMinutes: 120 + # condition: + # or( + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + # eq(variables['isRollingBuild'], true)) - # - # SourceBuild Build - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - platforms: - - SourceBuild_linux_x64 - jobParameters: - nameSuffix: PortableSourceBuild - extraStepsParameters: - name: SourceBuildPackages - timeoutInMinutes: 95 - condition: - eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true) + # # + # # SourceBuild Build + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # platforms: + # - SourceBuild_linux_x64 + # jobParameters: + # nameSuffix: PortableSourceBuild + # extraStepsParameters: + # name: SourceBuildPackages + # timeoutInMinutes: 95 + # condition: + # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true) From 40c9979448796965432c4d9449557928909402ef Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 11:00:23 +0200 Subject: [PATCH 005/109] Fix build command --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index d1e87242dfc365..1f08adcd74386f 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1483,7 +1483,7 @@ extends: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests - buildArgs: clr+clr.aot+libs+packs-c $(_BuildConfig) + buildArgs: clr+clr.aot+libs+packs -c $(_BuildConfig) timeoutInMinutes: 240 # extra steps, run tests extraVariablesTemplates: From 26738239be54b07f936d858bcd3327380f948a7c Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 11:10:56 +0200 Subject: [PATCH 006/109] Fix build command --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 1f08adcd74386f..0f2a0017ca8a76 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1483,7 +1483,7 @@ extends: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests - buildArgs: clr+clr.aot+libs+packs -c $(_BuildConfig) + buildArgs: -s clr+clr.aot+libs+packs -c $(_BuildConfig) timeoutInMinutes: 240 # extra steps, run tests extraVariablesTemplates: From 35923f94c4d75d0022623ae79a0dbeee48ba987b Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 11:24:10 +0200 Subject: [PATCH 007/109] Remove NativeAOT runtime flavor --- .../runtimes/build-runtime-tests-and-send-to-helix.yml | 2 +- eng/pipelines/runtime.yml | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml index 0d9ef3677cdd4f..dbca13c48b4337 100644 --- a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml @@ -31,7 +31,7 @@ parameters: steps: # Build Native AOT runtime packs - - ${{ if and(eq(parameters.runtimeFlavor, 'nativeaot'), or(eq(parameters.osGroup, 'ios'), eq(parameters.osGroup, 'tvos'))) }}: + - ${{ if or(eq(parameters.osGroup, 'ios'), eq(parameters.osGroup, 'tvos')) }}: - script: ./build.sh clr.nativeaotruntime+clr.nativeaotlibs -c ${{ parameters.buildConfig }} diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 0f2a0017ca8a76..2067ecd2688c7a 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1454,7 +1454,6 @@ extends: # timeoutInMinutes: 95 # condition: eq(variables['isRollingBuild'], true) - # # Build the whole product using NativeAOT for iOS/tvOS and run runtime tests with iOS/tvOS devices # @@ -1463,7 +1462,6 @@ extends: jobTemplate: /eng/pipelines/common/global-build-job.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml buildConfig: Release - runtimeFlavor: nativeaot # isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} # isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: From bdc038ff1c605347d83a09198ceaa142cb2bd51e Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 11:36:31 +0200 Subject: [PATCH 008/109] Fix build command --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 2067ecd2688c7a..861f07344d461d 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1481,7 +1481,7 @@ extends: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests - buildArgs: -s clr+clr.aot+libs+packs -c $(_BuildConfig) + buildArgs: -s clr.aot -c $(_BuildConfig) timeoutInMinutes: 240 # extra steps, run tests extraVariablesTemplates: From ef9d492f0d727031a976f20ac4246a91f2370429 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 11:55:33 +0200 Subject: [PATCH 009/109] Test build configuration --- .../runtimes/build-runtime-tests-and-send-to-helix.yml | 6 +++++- eng/pipelines/common/templates/runtimes/build-test-job.yml | 4 ++++ eng/pipelines/common/templates/runtimes/test-variables.yml | 4 ++++ eng/pipelines/runtime.yml | 3 ++- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml index dbca13c48b4337..d627b70a08cc5c 100644 --- a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml @@ -31,7 +31,11 @@ parameters: steps: # Build Native AOT runtime packs - - ${{ if or(eq(parameters.osGroup, 'ios'), eq(parameters.osGroup, 'tvos')) }}: + - ${{ if and(eq(parameters.runtimeFlavor, 'nativeaot'), or(eq(parameters.osGroup, 'ios'), eq(parameters.osGroup, 'tvos'))) }}: + - script: ./build.sh + clr+clr.aot + -c ${{ parameters.buildConfig }} + displayName: "Build host" - script: ./build.sh clr.nativeaotruntime+clr.nativeaotlibs -c ${{ parameters.buildConfig }} diff --git a/eng/pipelines/common/templates/runtimes/build-test-job.yml b/eng/pipelines/common/templates/runtimes/build-test-job.yml index 2813c45915c5e3..788ec9cd98594d 100644 --- a/eng/pipelines/common/templates/runtimes/build-test-job.yml +++ b/eng/pipelines/common/templates/runtimes/build-test-job.yml @@ -80,6 +80,10 @@ jobs: - name: runtimeFlavorArgs value: '-mono' + - ${{ if eq(parameters.runtimeFlavor, 'nativeaot') }}: + - name: runtimeFlavorArgs + value: '-nativeaot' + - name: testTreeFilterArg value: '' diff --git a/eng/pipelines/common/templates/runtimes/test-variables.yml b/eng/pipelines/common/templates/runtimes/test-variables.yml index 108b9f03ddb139..69d77010b6a764 100644 --- a/eng/pipelines/common/templates/runtimes/test-variables.yml +++ b/eng/pipelines/common/templates/runtimes/test-variables.yml @@ -79,6 +79,10 @@ variables: - name: runtimeFlavorArgs value: '-mono' + - ${{ if eq(parameters.runtimeFlavor, 'nativeaot') }}: + - name: runtimeFlavorArgs + value: '-nativeaot' + - name: runtimeVariantArg value: '' diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 861f07344d461d..81ee4f6001ae62 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1462,6 +1462,7 @@ extends: jobTemplate: /eng/pipelines/common/global-build-job.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml buildConfig: Release + runtimeFlavor: nativeaot # isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} # isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: @@ -1480,8 +1481,8 @@ extends: value: 180 jobParameters: testGroup: innerloop + isSourceBuild: true nameSuffix: AllSubsets_NativeAOT_RuntimeTests - buildArgs: -s clr.aot -c $(_BuildConfig) timeoutInMinutes: 240 # extra steps, run tests extraVariablesTemplates: From d7356acc4f0831be65a13e860b1de221bf36d41c Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 11:59:12 +0200 Subject: [PATCH 010/109] Test build configuration --- eng/pipelines/runtime.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 81ee4f6001ae62..9490d70954fa4d 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1481,7 +1481,6 @@ extends: value: 180 jobParameters: testGroup: innerloop - isSourceBuild: true nameSuffix: AllSubsets_NativeAOT_RuntimeTests timeoutInMinutes: 240 # extra steps, run tests From eee43411b939191147e5584dcdda99850ebf0500 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 12:12:40 +0200 Subject: [PATCH 011/109] Test build configuration --- eng/pipelines/common/global-build-job.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index cf93d34062b7da..95ebec7d918d82 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -189,11 +189,11 @@ jobs: - ${{ if eq(parameters.isManualCodeQLBuild, true) }}: - task: CodeQL3000Init@0 displayName: Initialize CodeQL (manually-injected) - - - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci -arch ${{ parameters.archType }} $(_osParameter) $(crossArg) ${{ parameters.buildArgs }} $(_officialBuildParameter) $(_cxx11Parameter) $(_buildDarwinFrameworksParameter) $(_overrideTestScriptWindowsCmdParameter) - displayName: Build product - ${{ if eq(parameters.useContinueOnErrorDuringBuild, true) }}: - continueOnError: ${{ parameters.shouldContinueOnError }} + - ${{ if ne(parameters.runtimeFlavor, "nativeaot" )}}: + - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci -arch ${{ parameters.archType }} $(_osParameter) $(crossArg) ${{ parameters.buildArgs }} $(_officialBuildParameter) $(_cxx11Parameter) $(_buildDarwinFrameworksParameter) $(_overrideTestScriptWindowsCmdParameter) + displayName: Build product + ${{ if eq(parameters.useContinueOnErrorDuringBuild, true) }}: + continueOnError: ${{ parameters.shouldContinueOnError }} - ${{ if eq(parameters.isManualCodeQLBuild, true) }}: - task: CodeQL3000Finalize@0 From f4d3d8caf2ebd6b5d2fc73151d28a86ca0080a2f Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 12:16:06 +0200 Subject: [PATCH 012/109] Test build configuration --- eng/pipelines/common/global-build-job.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 95ebec7d918d82..cf93d34062b7da 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -189,11 +189,11 @@ jobs: - ${{ if eq(parameters.isManualCodeQLBuild, true) }}: - task: CodeQL3000Init@0 displayName: Initialize CodeQL (manually-injected) - - ${{ if ne(parameters.runtimeFlavor, "nativeaot" )}}: - - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci -arch ${{ parameters.archType }} $(_osParameter) $(crossArg) ${{ parameters.buildArgs }} $(_officialBuildParameter) $(_cxx11Parameter) $(_buildDarwinFrameworksParameter) $(_overrideTestScriptWindowsCmdParameter) - displayName: Build product - ${{ if eq(parameters.useContinueOnErrorDuringBuild, true) }}: - continueOnError: ${{ parameters.shouldContinueOnError }} + + - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci -arch ${{ parameters.archType }} $(_osParameter) $(crossArg) ${{ parameters.buildArgs }} $(_officialBuildParameter) $(_cxx11Parameter) $(_buildDarwinFrameworksParameter) $(_overrideTestScriptWindowsCmdParameter) + displayName: Build product + ${{ if eq(parameters.useContinueOnErrorDuringBuild, true) }}: + continueOnError: ${{ parameters.shouldContinueOnError }} - ${{ if eq(parameters.isManualCodeQLBuild, true) }}: - task: CodeQL3000Finalize@0 From 12db78e38914df351470b7c0852d8f033e395666 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 12:26:29 +0200 Subject: [PATCH 013/109] Test build configuration --- eng/pipelines/common/global-build-job.yml | 3 +++ .../runtimes/build-runtime-tests-and-send-to-helix.yml | 6 +----- eng/pipelines/common/templates/runtimes/build-test-job.yml | 2 +- eng/pipelines/common/templates/runtimes/test-variables.yml | 4 ---- eng/pipelines/runtime.yml | 2 +- 5 files changed, 6 insertions(+), 11 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index cf93d34062b7da..3b7309368476c6 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -70,6 +70,9 @@ jobs: - name: _osParameter value: -os ${{ parameters.osGroup }} + - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'tvos', 'maccatalyst')) }}: + - name: _osParameter + value: -os osx - ${{ if and(eq(parameters.osGroup, 'linux'), eq(parameters.osSubGroup, '_bionic')) }}: - name: _osParameter diff --git a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml index d627b70a08cc5c..41c3f4e43c18a5 100644 --- a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml @@ -31,11 +31,7 @@ parameters: steps: # Build Native AOT runtime packs - - ${{ if and(eq(parameters.runtimeFlavor, 'nativeaot'), or(eq(parameters.osGroup, 'ios'), eq(parameters.osGroup, 'tvos'))) }}: - - script: ./build.sh - clr+clr.aot - -c ${{ parameters.buildConfig }} - displayName: "Build host" + - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'tvos', 'maccatalyst')) }}: - script: ./build.sh clr.nativeaotruntime+clr.nativeaotlibs -c ${{ parameters.buildConfig }} diff --git a/eng/pipelines/common/templates/runtimes/build-test-job.yml b/eng/pipelines/common/templates/runtimes/build-test-job.yml index 788ec9cd98594d..0b6dd9c308626c 100644 --- a/eng/pipelines/common/templates/runtimes/build-test-job.yml +++ b/eng/pipelines/common/templates/runtimes/build-test-job.yml @@ -80,7 +80,7 @@ jobs: - name: runtimeFlavorArgs value: '-mono' - - ${{ if eq(parameters.runtimeFlavor, 'nativeaot') }}: + - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'tvos', 'maccatalyst')) }}: - name: runtimeFlavorArgs value: '-nativeaot' diff --git a/eng/pipelines/common/templates/runtimes/test-variables.yml b/eng/pipelines/common/templates/runtimes/test-variables.yml index 69d77010b6a764..108b9f03ddb139 100644 --- a/eng/pipelines/common/templates/runtimes/test-variables.yml +++ b/eng/pipelines/common/templates/runtimes/test-variables.yml @@ -79,10 +79,6 @@ variables: - name: runtimeFlavorArgs value: '-mono' - - ${{ if eq(parameters.runtimeFlavor, 'nativeaot') }}: - - name: runtimeFlavorArgs - value: '-nativeaot' - - name: runtimeVariantArg value: '' diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 9490d70954fa4d..9d8dfb666518c7 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1462,7 +1462,6 @@ extends: jobTemplate: /eng/pipelines/common/global-build-job.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml buildConfig: Release - runtimeFlavor: nativeaot # isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} # isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: @@ -1482,6 +1481,7 @@ extends: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests + buildArgs: -s clr+clr.aot -c $(_BuildConfig) timeoutInMinutes: 240 # extra steps, run tests extraVariablesTemplates: From 20d6ce5d562d3f99d9565ee29288434b67f09c84 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 12:51:19 +0200 Subject: [PATCH 014/109] Test build configuration --- eng/pipelines/common/global-build-job.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 3b7309368476c6..8d415f1fec7f26 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -69,10 +69,7 @@ jobs: - group: DotNet-HelixApi-Access - name: _osParameter - value: -os ${{ parameters.osGroup }} - - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'tvos', 'maccatalyst')) }}: - - name: _osParameter - value: -os osx + value: -os osx - ${{ if and(eq(parameters.osGroup, 'linux'), eq(parameters.osSubGroup, '_bionic')) }}: - name: _osParameter From a7223439b8c14ebed5149ea3830b01381bba10b8 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 13:03:58 +0200 Subject: [PATCH 015/109] Test build configuration --- eng/pipelines/common/global-build-job.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 8d415f1fec7f26..f4f1c11cabd299 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -68,8 +68,13 @@ jobs: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - group: DotNet-HelixApi-Access - - name: _osParameter - value: -os osx + - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'tvos', 'maccatalyst')) }}: + - name: _osParameter + value: -os osx + - ${{ else }}: + - name: _osParameter + value: -os ${{ parameters.osGroup }} + - ${{ if and(eq(parameters.osGroup, 'linux'), eq(parameters.osSubGroup, '_bionic')) }}: - name: _osParameter From 881e58d766bdc397f13dadbf401f3895ffd94592 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 13:11:42 +0200 Subject: [PATCH 016/109] Test build configuration --- eng/pipelines/common/global-build-job.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index f4f1c11cabd299..08b7df7b29c686 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -68,7 +68,7 @@ jobs: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - group: DotNet-HelixApi-Access - - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'tvos', 'maccatalyst')) }}: + - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: - name: _osParameter value: -os osx - ${{ else }}: From fb478a16af7334e343f7a30c95b3af019942fb33 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 13:19:35 +0200 Subject: [PATCH 017/109] Test build configuration --- eng/pipelines/runtime.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 9d8dfb666518c7..1ae95190d27289 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1462,6 +1462,7 @@ extends: jobTemplate: /eng/pipelines/common/global-build-job.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml buildConfig: Release + runtimeFlavor: coreclr # isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} # isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: From 33426b557a2e4b54534f822729308121db716823 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 13:31:37 +0200 Subject: [PATCH 018/109] Test build configuration --- eng/pipelines/common/global-build-job.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 08b7df7b29c686..790266fad26bbb 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -68,14 +68,13 @@ jobs: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - group: DotNet-HelixApi-Access - - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: + - ${{ if eq(true, true) }}: - name: _osParameter value: -os osx - ${{ else }}: - name: _osParameter value: -os ${{ parameters.osGroup }} - - ${{ if and(eq(parameters.osGroup, 'linux'), eq(parameters.osSubGroup, '_bionic')) }}: - name: _osParameter value: -os linux-bionic From 5a7fd1ce3548a4f49426f94060375a2ecedd131c Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 13:42:07 +0200 Subject: [PATCH 019/109] Test build configuration --- eng/pipelines/common/global-build-job.yml | 2 +- eng/pipelines/runtime.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 790266fad26bbb..1fbb7e149c030d 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -68,7 +68,7 @@ jobs: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - group: DotNet-HelixApi-Access - - ${{ if eq(true, true) }}: + - ${{ if eq(parameters.jobParameters.runtimeFlavor, 'coreclr') }}: - name: _osParameter value: -os osx - ${{ else }}: diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 1ae95190d27289..13845090ce726f 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1480,6 +1480,7 @@ extends: - name: timeoutPerTestCollectionInMinutes value: 180 jobParameters: + runtimeFlavor: coreclr testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests buildArgs: -s clr+clr.aot -c $(_BuildConfig) From 4f99bc973ff163d8311b41428720f3d12de37b80 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 13:46:56 +0200 Subject: [PATCH 020/109] Test build configuration --- eng/pipelines/common/global-build-job.yml | 2 +- eng/pipelines/runtime.yml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 1fbb7e149c030d..7796617e85490d 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -68,7 +68,7 @@ jobs: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - group: DotNet-HelixApi-Access - - ${{ if eq(parameters.jobParameters.runtimeFlavor, 'coreclr') }}: + - ${{ if eq(runtimeFlavor, 'coreclr') }}: - name: _osParameter value: -os osx - ${{ else }}: diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 13845090ce726f..ee2188ace81cb2 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1462,7 +1462,6 @@ extends: jobTemplate: /eng/pipelines/common/global-build-job.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml buildConfig: Release - runtimeFlavor: coreclr # isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} # isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: From a733eefc3f8c57908bbbd03a46f1cecaedf5f672 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 13:54:57 +0200 Subject: [PATCH 021/109] Test build configuration --- eng/pipelines/common/global-build-job.yml | 9 ++++----- eng/pipelines/runtime.yml | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 7796617e85490d..4a5f9322ef31f1 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -22,7 +22,7 @@ parameters: isOfficialBuild: false isSourceBuild: false isNonPortableSourceBuild: false - runtimeFlavor: 'coreclr' + runtimeFlavor: '' runtimeVariant: '' helixQueues: '' enablePublishTestResults: false @@ -68,12 +68,11 @@ jobs: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - group: DotNet-HelixApi-Access - - ${{ if eq(runtimeFlavor, 'coreclr') }}: + - name: _osParameter + value: -os ${{ parameters.osGroup }} + - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: - name: _osParameter value: -os osx - - ${{ else }}: - - name: _osParameter - value: -os ${{ parameters.osGroup }} - ${{ if and(eq(parameters.osGroup, 'linux'), eq(parameters.osSubGroup, '_bionic')) }}: - name: _osParameter diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index ee2188ace81cb2..1ae95190d27289 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1462,6 +1462,7 @@ extends: jobTemplate: /eng/pipelines/common/global-build-job.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml buildConfig: Release + runtimeFlavor: coreclr # isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} # isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: @@ -1479,7 +1480,6 @@ extends: - name: timeoutPerTestCollectionInMinutes value: 180 jobParameters: - runtimeFlavor: coreclr testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests buildArgs: -s clr+clr.aot -c $(_BuildConfig) From 0f94265320860c2814c3cf4634ad92477fb8caca Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 14:08:14 +0200 Subject: [PATCH 022/109] Test build configuration --- eng/pipelines/common/global-build-job.yml | 12 +++++++----- .../build-runtime-tests-and-send-to-helix.yml | 15 ++++++++------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 4a5f9322ef31f1..2a21db6283db6d 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -22,7 +22,7 @@ parameters: isOfficialBuild: false isSourceBuild: false isNonPortableSourceBuild: false - runtimeFlavor: '' + runtimeFlavor: 'coreclr' runtimeVariant: '' helixQueues: '' enablePublishTestResults: false @@ -68,11 +68,13 @@ jobs: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - group: DotNet-HelixApi-Access + # Fixme: parameters.runtimeFlavor doesn't have expected value, should be fixed before merge + # - name: _osParameter + # value: -os ${{ parameters.osGroup }} + # - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'tvos', 'maccatalyst')) }}: - name: _osParameter - value: -os ${{ parameters.osGroup }} - - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: - - name: _osParameter - value: -os osx + value: -os osx + - ${{ if and(eq(parameters.osGroup, 'linux'), eq(parameters.osSubGroup, '_bionic')) }}: - name: _osParameter diff --git a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml index 41c3f4e43c18a5..ee35654cb71b7a 100644 --- a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml @@ -31,13 +31,14 @@ parameters: steps: # Build Native AOT runtime packs - - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'tvos', 'maccatalyst')) }}: - - script: ./build.sh - clr.nativeaotruntime+clr.nativeaotlibs - -c ${{ parameters.buildConfig }} - -os ${{ parameters.osGroup }} - -arch ${{ parameters.archType }} - displayName: "Build Native AOT runtime packs" + # Fixme: parameters.runtimeFlavor doesn't have expected value, should be fixed before merge + # - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'tvos', 'maccatalyst')) }}: + - script: ./build.sh + clr.nativeaotruntime+clr.nativeaotlibs + -c ${{ parameters.buildConfig }} + -os ${{ parameters.osGroup }} + -arch ${{ parameters.archType }} + displayName: "Build Native AOT runtime packs" - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests.yml parameters: From 4df468cfccb8eb1e98722795290585066ac55642 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 14:58:19 +0200 Subject: [PATCH 023/109] Test build configuration --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 1ae95190d27289..55c9ef058d30ea 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1482,7 +1482,7 @@ extends: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests - buildArgs: -s clr+clr.aot -c $(_BuildConfig) + buildArgs: -s clr.aot -rc $(_BuildConfig) -lc Release -hc Release timeoutInMinutes: 240 # extra steps, run tests extraVariablesTemplates: From dd96d91dd367d80a94af06145f465124bc2f573c Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 15:17:16 +0200 Subject: [PATCH 024/109] Test build configuration --- eng/pipelines/runtime.yml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 55c9ef058d30ea..5b774a73efd901 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1462,19 +1462,12 @@ extends: jobTemplate: /eng/pipelines/common/global-build-job.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml buildConfig: Release - runtimeFlavor: coreclr # isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} # isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - ios_arm64 # - tvos_arm64 variables: - - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: pr/dotnet/runtime/$(Build.SourceBranch) - # - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: - # - name: _HelixSource - # value: ci/dotnet/runtime/$(Build.SourceBranch) - name: timeoutPerTestInMinutes value: 60 - name: timeoutPerTestCollectionInMinutes @@ -1482,8 +1475,8 @@ extends: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests - buildArgs: -s clr.aot -rc $(_BuildConfig) -lc Release -hc Release timeoutInMinutes: 240 + buildArgs: -s clr.aot -rc $(_BuildConfig) -lc Release -hc Release # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml From 1e8657bab8fd864a9c58cbc4e1bf750875fba160 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 15:33:54 +0200 Subject: [PATCH 025/109] Test build configuration --- eng/pipelines/common/global-build-job.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 2a21db6283db6d..2cd2b3d1c4c40e 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -75,6 +75,8 @@ jobs: - name: _osParameter value: -os osx + - name: _archParameter + value: -arch x64 - ${{ if and(eq(parameters.osGroup, 'linux'), eq(parameters.osSubGroup, '_bionic')) }}: - name: _osParameter @@ -195,7 +197,7 @@ jobs: - task: CodeQL3000Init@0 displayName: Initialize CodeQL (manually-injected) - - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci -arch ${{ parameters.archType }} $(_osParameter) $(crossArg) ${{ parameters.buildArgs }} $(_officialBuildParameter) $(_cxx11Parameter) $(_buildDarwinFrameworksParameter) $(_overrideTestScriptWindowsCmdParameter) + - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci $(_archParameter) $(_osParameter) $(crossArg) ${{ parameters.buildArgs }} $(_officialBuildParameter) $(_cxx11Parameter) $(_buildDarwinFrameworksParameter) $(_overrideTestScriptWindowsCmdParameter) displayName: Build product ${{ if eq(parameters.useContinueOnErrorDuringBuild, true) }}: continueOnError: ${{ parameters.shouldContinueOnError }} From a4a157054c80eb6d67fb3607098a4fcb7ad1d9c6 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 16:10:14 +0200 Subject: [PATCH 026/109] Test build configuration --- .../common/templates/runtimes/build-test-job.yml | 14 +++++++------- .../common/templates/runtimes/test-variables.yml | 8 ++++---- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/build-test-job.yml b/eng/pipelines/common/templates/runtimes/build-test-job.yml index 0b6dd9c308626c..2de9f7ac839f8b 100644 --- a/eng/pipelines/common/templates/runtimes/build-test-job.yml +++ b/eng/pipelines/common/templates/runtimes/build-test-job.yml @@ -74,15 +74,15 @@ jobs: value: '' - name: runtimeFlavorArgs - value: '' + value: '-nativeaot' - - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: - - name: runtimeFlavorArgs - value: '-mono' + # - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + # - name: runtimeFlavorArgs + # value: '-mono' - - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'tvos', 'maccatalyst')) }}: - - name: runtimeFlavorArgs - value: '-nativeaot' + # - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'tvos', 'maccatalyst')) }}: + # - name: runtimeFlavorArgs + # value: '-nativeaot' - name: testTreeFilterArg value: '' diff --git a/eng/pipelines/common/templates/runtimes/test-variables.yml b/eng/pipelines/common/templates/runtimes/test-variables.yml index 108b9f03ddb139..7a476cef0d82fe 100644 --- a/eng/pipelines/common/templates/runtimes/test-variables.yml +++ b/eng/pipelines/common/templates/runtimes/test-variables.yml @@ -73,11 +73,11 @@ variables: value: 120 - name: runtimeFlavorArgs - value: '' + value: '-nativeaot' - - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: - - name: runtimeFlavorArgs - value: '-mono' + # - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + # - name: runtimeFlavorArgs + # value: '-mono' - name: runtimeVariantArg value: '' From 7461659691af882c52765c04a59f4c3680b4fa4a Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 16:43:18 +0200 Subject: [PATCH 027/109] Test build configuration --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 5b774a73efd901..1c9864ab6d2fa4 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1476,7 +1476,7 @@ extends: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests timeoutInMinutes: 240 - buildArgs: -s clr.aot -rc $(_BuildConfig) -lc Release -hc Release + buildArgs: -s clr+clr.aot -c $(_BuildConfig) # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml From 00cb5f18ad02361caf3dacafa03fca41c1bda487 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 17:40:02 +0200 Subject: [PATCH 028/109] Test build configuration --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 1c9864ab6d2fa4..b314a3693bca20 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1476,7 +1476,7 @@ extends: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests timeoutInMinutes: 240 - buildArgs: -s clr+clr.aot -c $(_BuildConfig) + buildArgs: -s clr+clr.aot+libs+packs -c $(_BuildConfig) # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml From 17070637838902767f4f2869323b7531e14070cb Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 18:22:05 +0200 Subject: [PATCH 029/109] Test build configuration --- eng/liveBuilds.targets | 2 +- eng/pipelines/runtime.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/liveBuilds.targets b/eng/liveBuilds.targets index 9ec240dcf5a91b..5b11c512b56081 100644 --- a/eng/liveBuilds.targets +++ b/eng/liveBuilds.targets @@ -15,7 +15,7 @@ $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)')) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(TargetArchitecture).$(CoreCLRConfiguration)')) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(HostArchitecture).$(CoreCLRConfiguration)')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'mono', '$(TargetOS).$(TargetArchitecture).$(MonoConfiguration)')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts')) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index b314a3693bca20..eef27b63cc9790 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1476,7 +1476,7 @@ extends: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests timeoutInMinutes: 240 - buildArgs: -s clr+clr.aot+libs+packs -c $(_BuildConfig) + buildArgs: -s clr.aot -c $(_BuildConfig) # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml From d601c79eafc7adfa8791f4efca9d93368ce54959 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 18:58:24 +0200 Subject: [PATCH 030/109] Test build configuration --- eng/liveBuilds.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/liveBuilds.targets b/eng/liveBuilds.targets index 5b11c512b56081..e807e332e7d66b 100644 --- a/eng/liveBuilds.targets +++ b/eng/liveBuilds.targets @@ -15,7 +15,7 @@ $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)')) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(HostArchitecture).$(CoreCLRConfiguration)')) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).x64.$(CoreCLRConfiguration)')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'mono', '$(TargetOS).$(TargetArchitecture).$(MonoConfiguration)')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts')) From a4c7233302a2574c8d7880a0b99d86107ccc122e Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 19:41:40 +0200 Subject: [PATCH 031/109] Test build configuration --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index eef27b63cc9790..49ea725e368f48 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1476,7 +1476,7 @@ extends: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests timeoutInMinutes: 240 - buildArgs: -s clr.aot -c $(_BuildConfig) + buildArgs: -s clr.aot++libs -c $(_BuildConfig) -rc $(_BuildConfig) # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml From bf3b44d4b5fe300f467d8b86ca625e9cc41f3530 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 20:38:43 +0200 Subject: [PATCH 032/109] Test build configuration --- eng/liveBuilds.targets | 2 +- src/tests/Directory.Build.targets | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/liveBuilds.targets b/eng/liveBuilds.targets index e807e332e7d66b..0d1a0b51c0b8d6 100644 --- a/eng/liveBuilds.targets +++ b/eng/liveBuilds.targets @@ -15,7 +15,7 @@ $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)')) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).x64.$(CoreCLRConfiguration)')) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'mono', '$(TargetOS).$(TargetArchitecture).$(MonoConfiguration)')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts')) diff --git a/src/tests/Directory.Build.targets b/src/tests/Directory.Build.targets index 97f54dda52a1db..e28855502846df 100644 --- a/src/tests/Directory.Build.targets +++ b/src/tests/Directory.Build.targets @@ -30,7 +30,7 @@ $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) $(IlcPath) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) $(LibrariesAllBinArtifactsPath) $(LibrariesAllBinArtifactsPath) From 833c350f9891c5a33086ae8e7992bd312993c65d Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 21:45:20 +0200 Subject: [PATCH 033/109] Test build configuration --- .../runtimes/build-runtime-tests-and-send-to-helix.yml | 2 +- src/tests/build.proj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml index ee35654cb71b7a..59b218e2ccf068 100644 --- a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml @@ -34,7 +34,7 @@ steps: # Fixme: parameters.runtimeFlavor doesn't have expected value, should be fixed before merge # - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'tvos', 'maccatalyst')) }}: - script: ./build.sh - clr.nativeaotruntime+clr.nativeaotlibs + clr.nativeaotruntime+clr.nativeaotlibs+libs -c ${{ parameters.buildConfig }} -os ${{ parameters.osGroup }} -arch ${{ parameters.archType }} diff --git a/src/tests/build.proj b/src/tests/build.proj index f6f786767511dc..a32a7416c320e9 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -479,7 +479,7 @@ --flat $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) $(IlcPath) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) $(LibrariesAllBinArtifactsPath) $(LibrariesAllBinArtifactsPath) From 32cb112b1a766a8fa25336622fa1e2f814ff4aba Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 8 Jun 2023 23:01:37 +0200 Subject: [PATCH 034/109] Add DevTeamProvisioning parameter --- src/tests/build.proj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tests/build.proj b/src/tests/build.proj index a32a7416c320e9..e860e88c4888cb 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -562,6 +562,7 @@ <_NativeDependencies>$(IntermediateOutputPath)\..\$(TestingGroup)\$(CategoryWithSlash)\$(TestName)\native\$(TestName).o + - From 3ac0241b77125ae1fc230182c91ac87b9bb5a818 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 9 Jun 2023 08:28:47 +0200 Subject: [PATCH 035/109] Add DevTeamProvisioning parameter --- src/tests/xunit-wrappers.targets | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/tests/xunit-wrappers.targets b/src/tests/xunit-wrappers.targets index 6f61f30dec57bd..767babe02c3137 100644 --- a/src/tests/xunit-wrappers.targets +++ b/src/tests/xunit-wrappers.targets @@ -4,7 +4,18 @@ Projects="$(MSBuildProjectFile)" Targets="CreateXunitWrapper;BuildXunitWrapper" Properties="_CMDDIR=%(TestDirectories.Identity)" - Condition="'@(TestDirectories)' != ''" /> + Condition="'@(TestDirectories)' != '' and '$(TestBuildMode)' != 'nativeaot'" /> + + + + + + + @@ -99,7 +110,8 @@ $(_XunitEpilog) - $([System.IO.Path]::GetRelativePath('$(XunitTestBinBase)', '$(_CMDDIR)')) + $([System.IO.Path]::GetRelativePath('$(XunitTestBinBase)', '$(_CMDDIR)')) + $([System.Text.RegularExpressions.Regex]::Match('$(CategoryWithSlashFullPath)', '/(.*)').Groups[1].Value) $([System.String]::Copy('$(CategoryWithSlash)').Replace('\','.')) $([System.String]::Copy('$(CategoryWithSlash)').Replace('/','.')) $(Category).XUnitWrapper From e2c602c0a70df1ae7f395c00477b73e9052bad47 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 9 Jun 2023 13:41:45 +0200 Subject: [PATCH 036/109] Add DevTeamProvisioning parameter --- src/tests/build.proj | 11 +++-------- src/tests/xunit-wrappers.targets | 16 ++-------------- 2 files changed, 5 insertions(+), 22 deletions(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index e860e88c4888cb..c1077f349f4663 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -57,7 +57,9 @@ + + @@ -601,7 +603,7 @@ - + _CMDDIR=%(TestDirectories.Identity) @@ -613,13 +615,6 @@ Condition="'@(TestDirectories)' != '' and '$(TestBuildMode)' != 'nativeaot'" /> - - - - - _CMDDIR=%(SubTestDirectories.Identity) - - - - - - - - - + Condition="'@(TestDirectories)' != ''" /> @@ -110,8 +99,7 @@ $(_XunitEpilog) - $([System.IO.Path]::GetRelativePath('$(XunitTestBinBase)', '$(_CMDDIR)')) - $([System.Text.RegularExpressions.Regex]::Match('$(CategoryWithSlashFullPath)', '/(.*)').Groups[1].Value) + $([System.IO.Path]::GetRelativePath('$(XunitTestBinBase)', '$(_CMDDIR)')) $([System.String]::Copy('$(CategoryWithSlash)').Replace('\','.')) $([System.String]::Copy('$(CategoryWithSlash)').Replace('/','.')) $(Category).XUnitWrapper From e4a3a65c9f2b1327cc21e93530ed769ba2928933 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 9 Jun 2023 15:07:46 +0200 Subject: [PATCH 037/109] Test build configuration --- src/tests/build.proj | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index c1077f349f4663..77f317a7ac3f44 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -491,11 +491,9 @@ $([System.IO.Path]::GetDirectoryName($([System.IO.Path]::GetDirectoryName($(_CMDDIR))))) $([System.IO.Path]::GetFileName($(CMDDIR_Grandparent))) - $([System.String]::Copy('$(_CMDDIR)').Replace("$(CMDDIR_Grandparent)/","")) + $(TestingGroup)/$([System.String]::Copy('$(_CMDDIR)').Replace("$(CMDDIR_Grandparent)/","")) $([System.IO.Path]::GetFileName($(_CMDDIR))) $([System.String]::Copy('$(CategoryWithSlash)').Replace('/','_')) - $([System.String]::Copy('$(CategoryWithSlash)').Replace('/', '.')).XUnitWrapper.dll - $(CMDDIR_GrandParent)/$(CategoryWithSlash)/$(XUnitWrapperFileName) $(IntermediateOutputPath)\iOSApps\$(Category) $(XUnitTestBinBase)$(CategoryWithSlash)\$(Category).app @@ -563,7 +561,7 @@ - <_NativeDependencies>$(IntermediateOutputPath)\..\$(TestingGroup)\$(CategoryWithSlash)\$(TestName)\native\$(TestName).o + <_NativeDependencies>$(IntermediateOutputPath)\..\$(CategoryWithSlash)\$(TestName)\native\$(TestName).o - From 3b4c6f7117f15b67ce660c3c96568a705e8eca72 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 10 Jun 2023 21:41:58 +0200 Subject: [PATCH 038/109] Test host configuration params --- eng/pipelines/common/global-build-job.yml | 14 +++++++++----- eng/pipelines/common/platform-matrix.yml | 5 ++++- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 2cd2b3d1c4c40e..d3f9f7a896de56 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -14,6 +14,7 @@ parameters: dependsOn: [] pool: '' platform: '' + hostPlatform: '' pgoType: '' condition: true useContinueOnErrorDuringBuild: false @@ -69,14 +70,17 @@ jobs: - group: DotNet-HelixApi-Access # Fixme: parameters.runtimeFlavor doesn't have expected value, should be fixed before merge - # - name: _osParameter - # value: -os ${{ parameters.osGroup }} - # - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'tvos', 'maccatalyst')) }}: - name: _osParameter - value: -os osx + value: -os ${{ parameters.osGroup }} + - ${{ if ne(parameters.hostOSGroup, '') }}: + - name: _osParameter + value: -os ${{ parameters.hostOSGroup }} - name: _archParameter - value: -arch x64 + value: -arch ${{ parameters.archType }} + - ${{ if ne(parameters.hostArchType, '') }}: + - name: _archParameter + value: -arch ${{ parameters.hostArchType }} - ${{ if and(eq(parameters.osGroup, 'linux'), eq(parameters.osSubGroup, '_bionic')) }}: - name: _osParameter diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index bae79645c0c6dc..03f71ea567a494 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -764,12 +764,15 @@ jobs: helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }} variables: ${{ parameters.variables }} osGroup: ios + ${{ if containsValue(parameters.runtimeFlavor, 'coreclr') }}: + hostOSGroup: osx + hostArchType: x64 archType: arm64 targetRid: ios-arm64 platform: ios_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - runtimeFlavor: mono + runtimeFlavor: ${{ parameters.runtimeFlavor }} buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} From e8ec6b0c63af75de205d388b6ccb4c8974506bc4 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 10 Jun 2023 21:58:22 +0200 Subject: [PATCH 039/109] Fix buildArgs command --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 49ea725e368f48..59aa43fee345fa 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1476,7 +1476,7 @@ extends: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests timeoutInMinutes: 240 - buildArgs: -s clr.aot++libs -c $(_BuildConfig) -rc $(_BuildConfig) + buildArgs: -s clr.aot+libs -c $(_BuildConfig) -rc $(_BuildConfig) # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml From 8257a75e6c3f9905df0b10095a7c332baf5e1e72 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 10 Jun 2023 21:59:07 +0200 Subject: [PATCH 040/109] Disable linker tests --- eng/pipelines/runtime-linker-tests.yml | 48 +++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/eng/pipelines/runtime-linker-tests.yml b/eng/pipelines/runtime-linker-tests.yml index 178f9c9edc05ed..ad7a6df8a7f58b 100644 --- a/eng/pipelines/runtime-linker-tests.yml +++ b/eng/pipelines/runtime-linker-tests.yml @@ -105,27 +105,27 @@ extends: # buildArgs: -s clr+libs -c $(_BuildConfig) # extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml - # - # Build Release config vertical for Browser-wasm - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - platforms: - - browser_wasm - jobParameters: - testGroup: innerloop - timeoutInMinutes: 120 - nameSuffix: Runtime_Release - buildArgs: -s mono+libs -c $(_BuildConfig) -p:WasmBuildNative=false -p:AotHostArchitecture=x64 -p:AotHostOS=$(_hostedOS) - condition: - or( - eq(variables['isRollingBuild'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm_specific_except_wbt_dbg.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), - eq(dependencies.evaluate_paths.outputs['DarcDependenciesChanged.Microsoft_NET_ILLink_Tasks'], true)) - extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml - extraStepsParameters: - extraTestArgs: '/p:WasmBuildNative=false' + # # + # # Build Release config vertical for Browser-wasm + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # platforms: + # - browser_wasm + # jobParameters: + # testGroup: innerloop + # timeoutInMinutes: 120 + # nameSuffix: Runtime_Release + # buildArgs: -s mono+libs -c $(_BuildConfig) -p:WasmBuildNative=false -p:AotHostArchitecture=x64 -p:AotHostOS=$(_hostedOS) + # condition: + # or( + # eq(variables['isRollingBuild'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm_specific_except_wbt_dbg.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), + # eq(dependencies.evaluate_paths.outputs['DarcDependenciesChanged.Microsoft_NET_ILLink_Tasks'], true)) + # extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml + # extraStepsParameters: + # extraTestArgs: '/p:WasmBuildNative=false' From bd3e2d61174117f2f148f0c4f7d0d6c7daae96e2 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 10 Jun 2023 22:08:35 +0200 Subject: [PATCH 041/109] Test host configuration params --- eng/pipelines/common/global-build-job.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index d3f9f7a896de56..d1214a2d195d1d 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -6,6 +6,8 @@ parameters: hostedOs: '' osGroup: '' osSubgroup: '' + hostOSGroup: '' + hostArchType: '' container: '' crossBuild: false variables: [] From 39a1e1bcc4a151064d98557d0ce47638d1c386fc Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 10 Jun 2023 22:21:37 +0200 Subject: [PATCH 042/109] Test host configuration params --- eng/pipelines/runtime.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 59aa43fee345fa..18e755dcf98193 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1462,6 +1462,7 @@ extends: jobTemplate: /eng/pipelines/common/global-build-job.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml buildConfig: Release + runtimeFlavor: coreclr # isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} # isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: From 361bf485f4c8b3cd996128ab52865657e2e88dcb Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 10 Jun 2023 22:34:45 +0200 Subject: [PATCH 043/109] Test host configuration params --- eng/pipelines/common/platform-matrix.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index 03f71ea567a494..75c2f472df653f 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -764,7 +764,7 @@ jobs: helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }} variables: ${{ parameters.variables }} osGroup: ios - ${{ if containsValue(parameters.runtimeFlavor, 'coreclr') }}: + ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: hostOSGroup: osx hostArchType: x64 archType: arm64 From df9912024cb374204be38f555ee729084ddf1706 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 10 Jun 2023 22:46:12 +0200 Subject: [PATCH 044/109] Test host configuration params --- eng/pipelines/common/xplat-setup.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/eng/pipelines/common/xplat-setup.yml b/eng/pipelines/common/xplat-setup.yml index 42a13b49ff6579..354e4af843387e 100644 --- a/eng/pipelines/common/xplat-setup.yml +++ b/eng/pipelines/common/xplat-setup.yml @@ -2,6 +2,8 @@ parameters: jobTemplate: '' hostedOs: '' osGroup: '' + hostOSGroup: '' + hostArchType: '' osSubgroup: '' archType: '' container: '' @@ -125,6 +127,9 @@ jobs: archType: ${{ parameters.archType }} targetRid: ${{ parameters.targetRid }} platform: ${{ parameters.platform }} + hostOSGroup: ${{ parameters.hostOSGroup }} + hostArchType: ${{ parameters.hostArchType }} + runtimeFlavor: ${{ parameters.runtimeFlavor }} ${{ if ne(parameters.container, '') }}: ${{ if eq(parameters.container.registry, 'mcr') }}: From 0ae2d681c260ad5d96e73a15d29e2af2b03f682c Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 10 Jun 2023 23:06:18 +0200 Subject: [PATCH 045/109] Test host configuration params --- eng/pipelines/common/global-build-job.yml | 11 +++++------ eng/pipelines/common/platform-matrix.yml | 5 ++--- eng/pipelines/common/xplat-setup.yml | 6 +----- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index d1214a2d195d1d..e0c14eadf5f120 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -4,10 +4,9 @@ parameters: buildArgs: '' archType: '' hostedOs: '' + hostedArch: '' osGroup: '' osSubgroup: '' - hostOSGroup: '' - hostArchType: '' container: '' crossBuild: false variables: [] @@ -74,15 +73,15 @@ jobs: # Fixme: parameters.runtimeFlavor doesn't have expected value, should be fixed before merge - name: _osParameter value: -os ${{ parameters.osGroup }} - - ${{ if ne(parameters.hostOSGroup, '') }}: + - ${{ if ne(parameters.hostedOs, '') }}: - name: _osParameter - value: -os ${{ parameters.hostOSGroup }} + value: -os ${{ parameters.hostedOs }} - name: _archParameter value: -arch ${{ parameters.archType }} - - ${{ if ne(parameters.hostArchType, '') }}: + - ${{ if ne(parameters.hostedArch, '') }}: - name: _archParameter - value: -arch ${{ parameters.hostArchType }} + value: -arch ${{ parameters.hostedArch }} - ${{ if and(eq(parameters.osGroup, 'linux'), eq(parameters.osSubGroup, '_bionic')) }}: - name: _osParameter diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index 75c2f472df653f..afb0dbd661f045 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -764,14 +764,13 @@ jobs: helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }} variables: ${{ parameters.variables }} osGroup: ios - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: - hostOSGroup: osx - hostArchType: x64 archType: arm64 targetRid: ios-arm64 platform: ios_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: + hostedOs: osx + hostedArch: x64 runtimeFlavor: ${{ parameters.runtimeFlavor }} buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} diff --git a/eng/pipelines/common/xplat-setup.yml b/eng/pipelines/common/xplat-setup.yml index 354e4af843387e..6f2423ae6358b8 100644 --- a/eng/pipelines/common/xplat-setup.yml +++ b/eng/pipelines/common/xplat-setup.yml @@ -1,9 +1,8 @@ parameters: jobTemplate: '' hostedOs: '' + hostedArch: '' osGroup: '' - hostOSGroup: '' - hostArchType: '' osSubgroup: '' archType: '' container: '' @@ -127,9 +126,6 @@ jobs: archType: ${{ parameters.archType }} targetRid: ${{ parameters.targetRid }} platform: ${{ parameters.platform }} - hostOSGroup: ${{ parameters.hostOSGroup }} - hostArchType: ${{ parameters.hostArchType }} - runtimeFlavor: ${{ parameters.runtimeFlavor }} ${{ if ne(parameters.container, '') }}: ${{ if eq(parameters.container.registry, 'mcr') }}: From 1f00c2862d02a7387edf87f4a02bce7eb9480a4d Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 10 Jun 2023 23:31:29 +0200 Subject: [PATCH 046/109] Test host configuration params --- eng/pipelines/common/global-build-job.yml | 5 +++-- eng/pipelines/common/platform-matrix.yml | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index e0c14eadf5f120..526090bcbbc731 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -5,6 +5,7 @@ parameters: archType: '' hostedOs: '' hostedArch: '' + hostBuild: false osGroup: '' osSubgroup: '' container: '' @@ -73,13 +74,13 @@ jobs: # Fixme: parameters.runtimeFlavor doesn't have expected value, should be fixed before merge - name: _osParameter value: -os ${{ parameters.osGroup }} - - ${{ if ne(parameters.hostedOs, '') }}: + - ${{ if eq(parameters.hostBuild, true) }}: - name: _osParameter value: -os ${{ parameters.hostedOs }} - name: _archParameter value: -arch ${{ parameters.archType }} - - ${{ if ne(parameters.hostedArch, '') }}: + - ${{ if eq(parameters.hostBuild, true) }}: - name: _archParameter value: -arch ${{ parameters.hostedArch }} diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index afb0dbd661f045..82968975f7955b 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -771,6 +771,7 @@ jobs: jobParameters: hostedOs: osx hostedArch: x64 + hostBuild: true runtimeFlavor: ${{ parameters.runtimeFlavor }} buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} From 285d943079b8586e0ae5c5a5fc5307ef0f569721 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 10 Jun 2023 23:31:55 +0200 Subject: [PATCH 047/109] Test host configuration params --- eng/pipelines/common/global-build-job.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 526090bcbbc731..e64f16a690dac1 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -74,13 +74,11 @@ jobs: # Fixme: parameters.runtimeFlavor doesn't have expected value, should be fixed before merge - name: _osParameter value: -os ${{ parameters.osGroup }} - - ${{ if eq(parameters.hostBuild, true) }}: - - name: _osParameter - value: -os ${{ parameters.hostedOs }} - - name: _archParameter value: -arch ${{ parameters.archType }} - ${{ if eq(parameters.hostBuild, true) }}: + - name: _osParameter + value: -os ${{ parameters.hostedOs }} - name: _archParameter value: -arch ${{ parameters.hostedArch }} From 7709ef9b8478f3364291b20a906a0c86361da70d Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 10 Jun 2023 23:42:27 +0200 Subject: [PATCH 048/109] Test host configuration params --- eng/pipelines/common/global-build-job.yml | 14 +++++++++++--- eng/pipelines/common/platform-matrix.yml | 2 +- .../build-runtime-tests-and-send-to-helix.yml | 10 ---------- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index e64f16a690dac1..2fb48fb9bf981a 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -5,7 +5,7 @@ parameters: archType: '' hostedOs: '' hostedArch: '' - hostBuild: false + isHostBuild: false osGroup: '' osSubgroup: '' container: '' @@ -71,12 +71,11 @@ jobs: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - group: DotNet-HelixApi-Access - # Fixme: parameters.runtimeFlavor doesn't have expected value, should be fixed before merge - name: _osParameter value: -os ${{ parameters.osGroup }} - name: _archParameter value: -arch ${{ parameters.archType }} - - ${{ if eq(parameters.hostBuild, true) }}: + - ${{ if eq(parameters.isHostBuild, true) }}: - name: _osParameter value: -os ${{ parameters.hostedOs }} - name: _archParameter @@ -211,6 +210,15 @@ jobs: displayName: Finalize CodeQL (manually-injected) #endif isSourceBuild + # Build Native AOT runtime packs + - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'tvos', 'maccatalyst')) }}: + - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) + clr.nativeaotruntime+clr.nativeaotlibs+libs + -c ${{ parameters.buildConfig }} + -os ${{ parameters.osGroup }} + -arch ${{ parameters.archType }} + displayName: "Build Native AOT runtime packs" + - ${{ if in(parameters.osGroup, 'osx', 'ios', 'tvos', 'android') }}: - script: | du -sh $(Build.SourcesDirectory)/* diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index 82968975f7955b..5ecb65713bb5fb 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -771,7 +771,7 @@ jobs: jobParameters: hostedOs: osx hostedArch: x64 - hostBuild: true + isHostBuild: true runtimeFlavor: ${{ parameters.runtimeFlavor }} buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} diff --git a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml index 59b218e2ccf068..e531acb6384159 100644 --- a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml @@ -30,16 +30,6 @@ parameters: shouldContinueOnError: false steps: - # Build Native AOT runtime packs - # Fixme: parameters.runtimeFlavor doesn't have expected value, should be fixed before merge - # - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'tvos', 'maccatalyst')) }}: - - script: ./build.sh - clr.nativeaotruntime+clr.nativeaotlibs+libs - -c ${{ parameters.buildConfig }} - -os ${{ parameters.osGroup }} - -arch ${{ parameters.archType }} - displayName: "Build Native AOT runtime packs" - - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests.yml parameters: osGroup: ${{ parameters.osGroup }} From 824a5d6868a9c18d639a271e9d8306bcbf522680 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 10 Jun 2023 23:45:34 +0200 Subject: [PATCH 049/109] Test host configuration params --- eng/pipelines/common/global-build-job.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 2fb48fb9bf981a..ddd9d7c3d7de54 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -210,14 +210,14 @@ jobs: displayName: Finalize CodeQL (manually-injected) #endif isSourceBuild - # Build Native AOT runtime packs - - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'tvos', 'maccatalyst')) }}: - - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) - clr.nativeaotruntime+clr.nativeaotlibs+libs - -c ${{ parameters.buildConfig }} - -os ${{ parameters.osGroup }} - -arch ${{ parameters.archType }} - displayName: "Build Native AOT runtime packs" + # Build Native AOT runtime packs + - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'tvos', 'maccatalyst')) }}: + - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) + clr.nativeaotruntime+clr.nativeaotlibs+libs + -c ${{ parameters.buildConfig }} + -os ${{ parameters.osGroup }} + -arch ${{ parameters.archType }} + displayName: "Build Native AOT runtime packs" - ${{ if in(parameters.osGroup, 'osx', 'ios', 'tvos', 'android') }}: - script: | From 463b711e34f11e242001e7feb70e677691ec0a50 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 11 Jun 2023 00:09:00 +0200 Subject: [PATCH 050/109] Test host configuration params --- eng/pipelines/common/global-build-job.yml | 5 +- eng/pipelines/common/platform-matrix.yml | 61 ++++++++++++++++++++--- 2 files changed, 55 insertions(+), 11 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index ddd9d7c3d7de54..da697ba48d5da3 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -16,7 +16,6 @@ parameters: dependsOn: [] pool: '' platform: '' - hostPlatform: '' pgoType: '' condition: true useContinueOnErrorDuringBuild: false @@ -211,12 +210,12 @@ jobs: #endif isSourceBuild # Build Native AOT runtime packs - - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'tvos', 'maccatalyst')) }}: + - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'iossimulator', 'tvos', 'tvossimulator', 'maccatalyst')) }}: - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) clr.nativeaotruntime+clr.nativeaotlibs+libs - -c ${{ parameters.buildConfig }} -os ${{ parameters.osGroup }} -arch ${{ parameters.archType }} + -c ${{ parameters.buildConfig }} displayName: "Build Native AOT runtime packs" - ${{ if in(parameters.osGroup, 'osx', 'ios', 'tvos', 'android') }}: diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index 5ecb65713bb5fb..e522cb070fd026 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -674,7 +674,13 @@ jobs: platform: maccatalyst_x64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - runtimeFlavor: mono + hostedOs: osx + hostedArch: x64 + isHostBuild: true + ${{ if eq(parameters.runtimeFlavor, '') }}: + runtimeFlavor: mono + ${{ else }}: + runtimeFlavor: ${{ parameters.runtimeFlavor }} buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} @@ -693,7 +699,13 @@ jobs: platform: maccatalyst_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - runtimeFlavor: mono + hostedOs: osx + hostedArch: x64 + isHostBuild: true + ${{ if eq(parameters.runtimeFlavor, '') }}: + runtimeFlavor: mono + ${{ else }}: + runtimeFlavor: ${{ parameters.runtimeFlavor }} buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} @@ -712,7 +724,13 @@ jobs: platform: tvos_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - runtimeFlavor: mono + hostedOs: osx + hostedArch: x64 + isHostBuild: true + ${{ if eq(parameters.runtimeFlavor, '') }}: + runtimeFlavor: mono + ${{ else }}: + runtimeFlavor: ${{ parameters.runtimeFlavor }} buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} @@ -731,7 +749,13 @@ jobs: platform: tvossimulator_x64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - runtimeFlavor: mono + hostedOs: osx + hostedArch: x64 + isHostBuild: true + ${{ if eq(parameters.runtimeFlavor, '') }}: + runtimeFlavor: mono + ${{ else }}: + runtimeFlavor: ${{ parameters.runtimeFlavor }} buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} @@ -750,7 +774,13 @@ jobs: platform: tvossimulator_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - runtimeFlavor: mono + hostedOs: osx + hostedArch: x64 + isHostBuild: true + ${{ if eq(parameters.runtimeFlavor, '') }}: + runtimeFlavor: mono + ${{ else }}: + runtimeFlavor: ${{ parameters.runtimeFlavor }} buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} @@ -772,7 +802,10 @@ jobs: hostedOs: osx hostedArch: x64 isHostBuild: true - runtimeFlavor: ${{ parameters.runtimeFlavor }} + ${{ if eq(parameters.runtimeFlavor, '') }}: + runtimeFlavor: mono + ${{ else }}: + runtimeFlavor: ${{ parameters.runtimeFlavor }} buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} @@ -791,7 +824,13 @@ jobs: platform: iossimulator_x64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - runtimeFlavor: mono + hostedOs: osx + hostedArch: x64 + isHostBuild: true + ${{ if eq(parameters.runtimeFlavor, '') }}: + runtimeFlavor: mono + ${{ else }}: + runtimeFlavor: ${{ parameters.runtimeFlavor }} buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} @@ -810,7 +849,13 @@ jobs: platform: iossimulator_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - runtimeFlavor: mono + hostedOs: osx + hostedArch: x64 + isHostBuild: true + ${{ if eq(parameters.runtimeFlavor, '') }}: + runtimeFlavor: mono + ${{ else }}: + runtimeFlavor: ${{ parameters.runtimeFlavor }} buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} From 75bc78dc6ae5fd3dab9c906f54bd5f77a73d5442 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 11 Jun 2023 01:09:23 +0200 Subject: [PATCH 051/109] Prune app bundle --- src/tests/build.proj | 62 +++++--------------------------------------- 1 file changed, 6 insertions(+), 56 deletions(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index 77f317a7ac3f44..d3cd66ead6f2e8 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -498,61 +498,13 @@ $(XUnitTestBinBase)$(CategoryWithSlash)\$(Category).app - - $(Category) - iossimulator - ios - tvossimulator - tvos - $(ArtifactsBinDir)microsoft.netcore.app.runtime.$(RuntimePackOSSuffix)-$(TargetArchitecture)/$(Configuration)/runtimes/$(RuntimePackOSSuffix)-$(TargetArchitecture) - $(MicrosoftNetCoreAppRuntimePackDir)/native - - - - - True - - - - - - - - - - - - - - - - @(TestDlls->'%(Filename)') - - $([MSBuild]::NormalizeDirectory('$(BuildDir)', 'AppBundle')) + $(Category) + <_NativeDependencies>$(IntermediateOutputPath)\..\$(CategoryWithSlash)\$(TestName)\native\$(TestName).o + - - - - - - - - - - - - - <_LinkerFlagsToDrop Include="@(NativeFramework->'-framework %(Identity)')" /> <_LinkerFlagsToDrop Include="@(LinkerArg)" Condition="$([System.String]::new('%(Identity)').Contains('swift'))" /> @@ -560,12 +512,10 @@ - - <_NativeDependencies>$(IntermediateOutputPath)\..\$(CategoryWithSlash)\$(TestName)\native\$(TestName).o - - - - + + + Date: Sun, 11 Jun 2023 09:33:52 +0200 Subject: [PATCH 052/109] Simplify test launch command for coreclr --- src/tests/Common/CLRTest.Execute.Bash.targets | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/tests/Common/CLRTest.Execute.Bash.targets b/src/tests/Common/CLRTest.Execute.Bash.targets index 9f8ee43b3f021b..eeb47d6f7eb734 100644 --- a/src/tests/Common/CLRTest.Execute.Bash.targets +++ b/src/tests/Common/CLRTest.Execute.Bash.targets @@ -417,7 +417,7 @@ CLRTestExitCode=$? CLRTestExpectedExitCode=0 ]]> - + + + + From 13f6e58374e28808fb048a8abee30bc4a36dc636 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 11 Jun 2023 20:20:51 +0200 Subject: [PATCH 053/109] Update perf pipeline to use Native AOT jobs --- eng/pipelines/coreclr/perf-non-wasm-jobs.yml | 743 +++++++++--------- eng/pipelines/coreclr/perf.yml | 14 +- .../templates/build-perf-sample-apps.yml | 4 +- 3 files changed, 381 insertions(+), 380 deletions(-) diff --git a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml index 209943a1026d73..3baed2dcf2e8b2 100644 --- a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml +++ b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml @@ -1,116 +1,117 @@ jobs: -- ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: +# - ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: - # build mono - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 +# # build mono +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/mono/templates/build-job.yml +# runtimeFlavor: mono +# buildConfig: release +# platforms: +# - linux_x64 - # build coreclr and libraries - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml - buildConfig: release - platforms: - - linux_x64 - jobParameters: - testGroup: perf +# # build coreclr and libraries +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml +# buildConfig: release +# platforms: +# - linux_x64 +# jobParameters: +# testGroup: perf -- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: +# - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: - # build coreclr and libraries - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml - buildConfig: release - platforms: - - linux_x64 - - windows_x64 - - windows_x86 - - linux_musl_x64 - jobParameters: - testGroup: perf +# # build coreclr and libraries +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml +# buildConfig: release +# platforms: +# - linux_x64 +# - windows_x64 +# - windows_x86 +# - linux_musl_x64 +# jobParameters: +# testGroup: perf - # build mono for AOT - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - linux_x64 - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: AOT - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml - extraStepsParameters: - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: AOT Mono Artifacts - artifactName: LinuxMonoAOTx64 - archiveExtension: '.tar.gz' - archiveType: tar - tarCompression: gz +# # build mono for AOT +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: release +# runtimeFlavor: mono +# platforms: +# - linux_x64 +# jobParameters: +# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) +# nameSuffix: AOT +# isOfficialBuild: false +# extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml +# extraStepsParameters: +# rootFolder: '$(Build.SourcesDirectory)/artifacts/' +# includeRootFolder: true +# displayName: AOT Mono Artifacts +# artifactName: LinuxMonoAOTx64 +# archiveExtension: '.tar.gz' +# archiveType: tar +# tarCompression: gz - # build mono Android scenarios - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - android_arm64 - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: AndroidMono - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml - extraStepsParameters: - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: Android Mono Artifacts - artifactName: AndroidMonoarm64 - archiveExtension: '.tar.gz' - archiveType: tar - tarCompression: gz +# # build mono Android scenarios +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: release +# runtimeFlavor: mono +# platforms: +# - android_arm64 +# jobParameters: +# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) +# nameSuffix: AndroidMono +# isOfficialBuild: false +# extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml +# extraStepsParameters: +# rootFolder: '$(Build.SourcesDirectory)/artifacts/' +# includeRootFolder: true +# displayName: Android Mono Artifacts +# artifactName: AndroidMonoarm64 +# archiveExtension: '.tar.gz' +# archiveType: tar +# tarCompression: gz - # build mono iOS scenarios - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - ios_arm64 - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: iOSMono - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml - extraStepsParameters: - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: iOS Mono Artifacts - artifactName: iOSMonoarm64 - archiveExtension: '.tar.gz' - archiveType: tar - tarCompression: gz +# # build mono iOS scenarios +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: release +# runtimeFlavor: mono +# platforms: +# - ios_arm64 +# jobParameters: +# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) +# nameSuffix: iOSMono +# isOfficialBuild: false +# extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml +# extraStepsParameters: +# rootFolder: '$(Build.SourcesDirectory)/artifacts/' +# includeRootFolder: true +# displayName: iOS Mono Artifacts +# artifactName: iOSMonoarm64 +# archiveExtension: '.tar.gz' +# archiveType: tar +# tarCompression: gz # build NativeAOT iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/common/global-build-job.yml buildConfig: release - runtimeFlavor: mono + runtimeFlavor: coreclr platforms: - ios_arm64 jobParameters: + buildArgs: -s clr.aot+libs -c $(_BuildConfig) -rc $(_BuildConfig) nameSuffix: iOSNativeAOT isOfficialBuild: false extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml @@ -123,99 +124,99 @@ jobs: archiveType: tar tarCompression: gz - # build mono - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 + # # build mono + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_x64 - # run android scenarios - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - windows_x64 - jobParameters: - testGroup: perf - runtimeType: AndroidMono - projectFile: android_scenarios.proj - runKind: android_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfpixel4a' + # # run android scenarios + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - windows_x64 + # jobParameters: + # testGroup: perf + # runtimeType: AndroidMono + # projectFile: android_scenarios.proj + # runKind: android_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfpixel4a' - # run mono iOS scenarios scenarios - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: perf - runtimeType: iOSMono - projectFile: ios_scenarios.proj - runKind: ios_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfiphone12mini' - iOSLlvmBuild: False - iOSStripSymbols: False + # # run mono iOS scenarios scenarios + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: perf + # runtimeType: iOSMono + # projectFile: ios_scenarios.proj + # runKind: ios_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfiphone12mini' + # iOSLlvmBuild: False + # iOSStripSymbols: False - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: perf - runtimeType: iOSMono - projectFile: ios_scenarios.proj - runKind: ios_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfiphone12mini' - iOSLlvmBuild: False - iOSStripSymbols: True + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: perf + # runtimeType: iOSMono + # projectFile: ios_scenarios.proj + # runKind: ios_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfiphone12mini' + # iOSLlvmBuild: False + # iOSStripSymbols: True - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: perf - runtimeType: iOSMono - projectFile: ios_scenarios.proj - runKind: ios_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfiphone12mini' - iOSLlvmBuild: True - iOSStripSymbols: False + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: perf + # runtimeType: iOSMono + # projectFile: ios_scenarios.proj + # runKind: ios_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfiphone12mini' + # iOSLlvmBuild: True + # iOSStripSymbols: False - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: perf - runtimeType: iOSMono - projectFile: ios_scenarios.proj - runKind: ios_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfiphone12mini' - iOSLlvmBuild: True - iOSStripSymbols: True + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: perf + # runtimeType: iOSMono + # projectFile: ios_scenarios.proj + # runKind: ios_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfiphone12mini' + # iOSLlvmBuild: True + # iOSStripSymbols: True # run NativeAOT iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml @@ -250,201 +251,201 @@ jobs: logicalmachine: 'perfiphone12mini' iOSStripSymbols: True - # run mono microbenchmarks perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - runtimeType: mono - projectFile: microbenchmarks.proj - runKind: micro_mono - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' + # # run mono microbenchmarks perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - linux_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # runtimeType: mono + # projectFile: microbenchmarks.proj + # runKind: micro_mono + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' - # run mono interpreter perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - runtimeType: mono - codeGenType: 'Interpreter' - projectFile: microbenchmarks.proj - runKind: micro_mono - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' + # # run mono interpreter perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - linux_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # runtimeType: mono + # codeGenType: 'Interpreter' + # projectFile: microbenchmarks.proj + # runKind: micro_mono + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' - # run mono aot microbenchmarks perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? - buildConfig: release - runtimeFlavor: aot - platforms: - - linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - runtimeType: mono - codeGenType: 'AOT' - projectFile: microbenchmarks.proj - runKind: micro_mono - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' + # # run mono aot microbenchmarks perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? + # buildConfig: release + # runtimeFlavor: aot + # platforms: + # - linux_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # runtimeType: mono + # codeGenType: 'AOT' + # projectFile: microbenchmarks.proj + # runKind: micro_mono + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' - # run coreclr perftiger microbenchmarks perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - linux_x64 - - windows_x64 - - windows_x86 - - linux_musl_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' + # # run coreclr perftiger microbenchmarks perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - linux_x64 + # - windows_x64 + # - windows_x86 + # - linux_musl_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' - # run coreclr perftiger microbenchmarks no dynamic pgo perf jobs - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - windows_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' - pgoRunType: -NoDynamicPGO + # # run coreclr perftiger microbenchmarks no dynamic pgo perf jobs + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - windows_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' + # pgoRunType: -NoDynamicPGO - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' - pgoRunType: --nodynamicpgo + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - linux_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' + # pgoRunType: --nodynamicpgo - # run coreclr perftiger microbenchmarks physical promotion perf jobs - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - windows_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' - physicalPromotionRunType: -PhysicalPromotion + # # run coreclr perftiger microbenchmarks physical promotion perf jobs + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - windows_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' + # physicalPromotionRunType: -PhysicalPromotion - # run coreclr perfowl microbenchmarks perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - linux_x64 - - windows_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perfowl' + # # run coreclr perfowl microbenchmarks perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - linux_x64 + # - windows_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perfowl' - # run coreclr crossgen perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - linux_x64 - - windows_x64 - - windows_x86 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: crossgen_perf.proj - runKind: crossgen_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perftiger' + # # run coreclr crossgen perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - linux_x64 + # - windows_x64 + # - windows_x86 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: crossgen_perf.proj + # runKind: crossgen_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perftiger' - # build mono runtime packs - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - android_arm64 - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: Mono_Packs - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - extraStepsParameters: - name: MonoRuntimePacks + # # build mono runtime packs + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - android_arm64 + # jobParameters: + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # nameSuffix: Mono_Packs + # isOfficialBuild: false + # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + # extraStepsParameters: + # name: MonoRuntimePacks - # build PerfBDN app - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - ios_arm64 - jobParameters: - dependsOn: - - Build_android_arm64_release_Mono_Packs - buildArgs: -s mono -c $(_BuildConfig) - nameSuffix: PerfBDNApp - isOfficialBuild: false - pool: - vmImage: 'macos-12' - extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-bdn-app.yml - extraStepsParameters: - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: Android BDN App Artifacts - artifactName: PerfBDNAppArm - archiveExtension: '.tar.gz' - archiveType: tar - tarCompression: gz + # # build PerfBDN app + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - ios_arm64 + # jobParameters: + # dependsOn: + # - Build_android_arm64_release_Mono_Packs + # buildArgs: -s mono -c $(_BuildConfig) + # nameSuffix: PerfBDNApp + # isOfficialBuild: false + # pool: + # vmImage: 'macos-12' + # extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-bdn-app.yml + # extraStepsParameters: + # rootFolder: '$(Build.SourcesDirectory)/artifacts/' + # includeRootFolder: true + # displayName: Android BDN App Artifacts + # artifactName: PerfBDNAppArm + # archiveExtension: '.tar.gz' + # archiveType: tar + # tarCompression: gz diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index ae734cbfdaa76d..04e90898d76f75 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -42,12 +42,12 @@ extends: - stage: Build jobs: - - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml - parameters: - collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }} - ${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: - runProfile: 'non-v8' - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: - runProfile: 'v8' + # - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml + # parameters: + # collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }} + # ${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: + # runProfile: 'non-v8' + # ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: + # runProfile: 'v8' - template: /eng/pipelines/coreclr/perf-non-wasm-jobs.yml diff --git a/eng/pipelines/coreclr/templates/build-perf-sample-apps.yml b/eng/pipelines/coreclr/templates/build-perf-sample-apps.yml index 89604f865c4ae8..d702995bcef1c2 100644 --- a/eng/pipelines/coreclr/templates/build-perf-sample-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-sample-apps.yml @@ -124,7 +124,7 @@ steps: archiveType: zip - ${{ if and(eq(parameters.osGroup, 'ios'), eq(parameters.nameSuffix, 'iOSNativeAOT')) }}: - - script: make world TARGET_OS=ios TARGET_ARCH=arm64 BUILD_CONFIG=Release DEPLOY_AND_RUN=false STRIP_DEBUG_SYMBOLS=false + - script: make hello-app TARGET_OS=ios TARGET_ARCH=arm64 BUILD_CONFIG=Release DEPLOY_AND_RUN=false STRIP_DEBUG_SYMBOLS=false env: DevTeamProvisioning: '-' workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT @@ -146,7 +146,7 @@ steps: - script: rm -r -f $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/bin workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT displayName: Clean bindir - - script: make world TARGET_OS=ios TARGET_ARCH=arm64 BUILD_CONFIG=Release DEPLOY_AND_RUN=false STRIP_DEBUG_SYMBOLS=true + - script: make hello-app TARGET_OS=ios TARGET_ARCH=arm64 BUILD_CONFIG=Release DEPLOY_AND_RUN=false STRIP_DEBUG_SYMBOLS=true env: DevTeamProvisioning: '-' workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT From e3276e6ba8415def753a64a701c56d5f094ff7c1 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 11 Jun 2023 20:26:30 +0200 Subject: [PATCH 054/109] Update perf pipeline to use Native AOT jobs --- eng/pipelines/coreclr/perf-non-wasm-jobs.yml | 4 ++-- eng/pipelines/coreclr/templates/perf-job.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml index 3baed2dcf2e8b2..a9c27706b439d8 100644 --- a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml +++ b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml @@ -223,7 +223,7 @@ jobs: parameters: jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml buildConfig: release - runtimeFlavor: mono + runtimeFlavor: coreclr platforms: - osx_x64 jobParameters: @@ -239,7 +239,7 @@ jobs: parameters: jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml buildConfig: release - runtimeFlavor: mono + runtimeFlavor: coreclr platforms: - osx_x64 jobParameters: diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml index 9beaf0884e6999..dc3efa46892b62 100644 --- a/eng/pipelines/coreclr/templates/perf-job.yml +++ b/eng/pipelines/coreclr/templates/perf-job.yml @@ -88,7 +88,7 @@ jobs: - ${{ if eq(parameters.runtimeType, 'iOSMono')}}: - ${{ 'build_ios_arm64_release_iOSMono' }} - ${{ if eq(parameters.runtimeType, 'iOSNativeAOT')}}: - - ${{ 'build_ios_arm64_release_iOSNativeAOT' }} + - ${{ 'build_ios_arm64_osx_release_iOSNativeAOT' }} ${{ if and(eq(parameters.osGroup, 'windows'), not(in(parameters.runtimeType, 'AndroidMono', 'iOSMono', 'iOSNativeAOT'))) }}: ${{ if eq(parameters.runtimeType, 'mono') }}: From 7e75b99fd929dc187daccd6f9eee627926582c22 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 11 Jun 2023 22:07:42 +0200 Subject: [PATCH 055/109] Update perf pipeline to use Native AOT jobs --- src/mono/sample/iOS-NativeAOT/Program.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/sample/iOS-NativeAOT/Program.csproj b/src/mono/sample/iOS-NativeAOT/Program.csproj index 13ff09456b6e8b..f7a5b8b72f3a39 100644 --- a/src/mono/sample/iOS-NativeAOT/Program.csproj +++ b/src/mono/sample/iOS-NativeAOT/Program.csproj @@ -47,7 +47,7 @@ - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) $(IlcPath) $(CoreCLRAotSdkDir) $(LibrariesAllBinArtifactsPath) From 40b0bc3b913db13d3ca6453c20464555e900b4e4 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 12 Jun 2023 11:42:02 +0200 Subject: [PATCH 056/109] Update perf pipeline to use Native AOT jobs --- src/mono/sample/iOS-NativeAOT/Program.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/sample/iOS-NativeAOT/Program.csproj b/src/mono/sample/iOS-NativeAOT/Program.csproj index f7a5b8b72f3a39..503780c7dc280f 100644 --- a/src/mono/sample/iOS-NativeAOT/Program.csproj +++ b/src/mono/sample/iOS-NativeAOT/Program.csproj @@ -49,7 +49,7 @@ $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) $(IlcPath) - $(CoreCLRAotSdkDir) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) $(LibrariesAllBinArtifactsPath) $(LibrariesAllBinArtifactsPath) From b2ade5afa00fc9d04b45e682e62ca4407af136eb Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 12 Jun 2023 12:58:12 +0200 Subject: [PATCH 057/109] Build coreclr for the perf runs --- eng/pipelines/coreclr/perf-non-wasm-jobs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml index a9c27706b439d8..db028f705cb721 100644 --- a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml +++ b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml @@ -111,7 +111,7 @@ jobs: platforms: - ios_arm64 jobParameters: - buildArgs: -s clr.aot+libs -c $(_BuildConfig) -rc $(_BuildConfig) + buildArgs: -s clr+clr.aot+libs -c $(_BuildConfig) -rc $(_BuildConfig) nameSuffix: iOSNativeAOT isOfficialBuild: false extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml From 32cbd8e2b676da50efead6ebc3e899c948e73827 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 12 Jun 2023 15:06:36 +0200 Subject: [PATCH 058/109] Update the sample bundle to match the Mono app dir --- eng/pipelines/coreclr/templates/build-perf-sample-apps.yml | 4 ++-- src/mono/sample/iOS-NativeAOT/Program.csproj | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/eng/pipelines/coreclr/templates/build-perf-sample-apps.yml b/eng/pipelines/coreclr/templates/build-perf-sample-apps.yml index e5c66d45610e25..917e18b0a306ef 100644 --- a/eng/pipelines/coreclr/templates/build-perf-sample-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-sample-apps.yml @@ -137,7 +137,7 @@ steps: artifactName: ${{ parameters.artifactName }} - template: /eng/pipelines/common/upload-artifact-step.yml parameters: - rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/bin/Bundle/HelloiOS/Release-iphoneos/HelloiOS.app + rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/bin/ios-arm64/Bundle/HelloiOS/Release-iphoneos/HelloiOS.app includeRootFolder: true displayName: iOS Sample App Symbols artifactName: iOSSampleAppSymbols @@ -159,7 +159,7 @@ steps: artifactName: ${{ parameters.artifactName }} - template: /eng/pipelines/common/upload-artifact-step.yml parameters: - rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/bin/Bundle/HelloiOS/Release-iphoneos/HelloiOS.app + rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/bin/ios-arm64/Bundle/HelloiOS/Release-iphoneos/HelloiOS.app includeRootFolder: true displayName: iOS Sample App NoSymbols artifactName: iOSSampleAppNoSymbols diff --git a/src/mono/sample/iOS-NativeAOT/Program.csproj b/src/mono/sample/iOS-NativeAOT/Program.csproj index 503780c7dc280f..f1efdfd7884ffb 100644 --- a/src/mono/sample/iOS-NativeAOT/Program.csproj +++ b/src/mono/sample/iOS-NativeAOT/Program.csproj @@ -9,7 +9,6 @@ $(TargetOS)-$(TargetArchitecture) HelloiOS true - $(OutputPath)/publish static true @@ -60,7 +59,7 @@ DependsOnTargets="IlcCompile;CopyFilesToPublishDirectory"> - $(MSBuildThisFileDirectory)$(PublishDir)\app + $(MSBuildThisFileDirectory)$(OutputPath)\Bundle True false adhoc @@ -92,7 +91,7 @@ InvariantGlobalization="$(InvariantGlobalization)" EnableAppSandbox="$(EnableAppSandbox)" StripSymbolTable="$(StripDebugSymbols)" - AppDir="$(MSBuildThisFileDirectory)$(PublishDir)" + AppDir="$(MSBuildThisFileDirectory)$(OutputPath)" ExtraLinkerArguments="@(ExtraLinkerArguments)" > From fcb1c258b3f5c0efd9788411d1ad9d3bcaf19af2 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 12 Jun 2023 16:54:07 +0200 Subject: [PATCH 059/109] Skip coreclr build for NativeAOT performance run on iOS --- eng/pipelines/coreclr/perf-non-wasm-jobs.yml | 2 +- eng/pipelines/coreclr/templates/perf-job.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml index db028f705cb721..a9c27706b439d8 100644 --- a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml +++ b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml @@ -111,7 +111,7 @@ jobs: platforms: - ios_arm64 jobParameters: - buildArgs: -s clr+clr.aot+libs -c $(_BuildConfig) -rc $(_BuildConfig) + buildArgs: -s clr.aot+libs -c $(_BuildConfig) -rc $(_BuildConfig) nameSuffix: iOSNativeAOT isOfficialBuild: false extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml index dc3efa46892b62..d06a781e0053f1 100644 --- a/eng/pipelines/coreclr/templates/perf-job.yml +++ b/eng/pipelines/coreclr/templates/perf-job.yml @@ -280,7 +280,7 @@ jobs: # Create Core_Root - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(buildConfig) $(archType) generatelayoutonly $(librariesOverrideArg) $(_crossBuildPropertyArg) displayName: Create Core_Root - condition: and(succeeded(), ne(variables.runtimeFlavorName, 'Mono'), ne('${{ parameters.runtimeType }}', 'wasm')) + condition: and(succeeded(), ne(variables.runtimeFlavorName, 'Mono'), ne('${{ parameters.runtimeType }}', 'wasm'), not(in('${{ parameters.runtimeType }}', 'AndroidMono', 'iOSMono', 'iOSNativeAOT'))) # Copy the runtime directory into the testhost folder to include OOBs. - script: "build.cmd -subset libs.pretest -configuration release -ci -arch $(archType) -testscope innerloop /p:RuntimeArtifactsPath=$(librariesDownloadDir)\\bin\\mono\\$(osGroup).$(archType).$(buildConfigUpper) /p:RuntimeFlavor=mono;xcopy $(Build.SourcesDirectory)\\artifacts\\bin\\runtime\\net8.0-$(osGroup)-$(buildConfigUpper)-$(archType)\\* $(Build.SourcesDirectory)\\artifacts\\bin\\testhost\\net8.0-$(osGroup)-$(buildConfigUpper)-$(archType)\\shared\\Microsoft.NETCore.App\\$(productVersion) /E /I /Y;xcopy $(Build.SourcesDirectory)\\artifacts\\bin\\testhost\\net8.0-$(osGroup)-$(buildConfigUpper)-$(archType)\\* $(Build.SourcesDirectory)\\.dotnet-mono /E /I /Y;copy $(Build.SourcesDirectory)\\artifacts\\bin\\coreclr\\$(osGroup).$(archType).$(buildConfigUpper)\\corerun.exe $(Build.SourcesDirectory)\\.dotnet-mono\\shared\\Microsoft.NETCore.App\\$(productVersion)\\corerun.exe" From 9b3438b921d54ddad9956370df5447bbf1db6e0c Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 13 Jun 2023 06:35:07 +0200 Subject: [PATCH 060/109] Add runtime-ioslike-coreclr and runtime-ioslike-mono azp runs --- .../templates/runtimes/build-test-job.yml | 14 +- .../templates/runtimes/test-variables.yml | 12 +- eng/pipelines/common/variables.yml | 8 +- eng/pipelines/coreclr/perf-non-wasm-jobs.yml | 740 +++++++++--------- eng/pipelines/coreclr/perf.yml | 14 +- .../runtime-extra-platforms-ioslike.yml | 187 +++-- eng/pipelines/runtime-ioslike-coreclr.yml | 21 + eng/pipelines/runtime-ioslike-mono.yml | 21 + 8 files changed, 551 insertions(+), 466 deletions(-) create mode 100644 eng/pipelines/runtime-ioslike-coreclr.yml create mode 100644 eng/pipelines/runtime-ioslike-mono.yml diff --git a/eng/pipelines/common/templates/runtimes/build-test-job.yml b/eng/pipelines/common/templates/runtimes/build-test-job.yml index 2de9f7ac839f8b..567c1e5f997148 100644 --- a/eng/pipelines/common/templates/runtimes/build-test-job.yml +++ b/eng/pipelines/common/templates/runtimes/build-test-job.yml @@ -74,15 +74,15 @@ jobs: value: '' - name: runtimeFlavorArgs - value: '-nativeaot' + value: '' - # - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: - # - name: runtimeFlavorArgs - # value: '-mono' + - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + - name: runtimeFlavorArgs + value: '-mono' - # - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'tvos', 'maccatalyst')) }}: - # - name: runtimeFlavorArgs - # value: '-nativeaot' + - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'iossimulator', 'tvos', 'tvossimulator', 'maccatalyst')) }}: + - name: runtimeFlavorArgs + value: '-nativeaot' - name: testTreeFilterArg value: '' diff --git a/eng/pipelines/common/templates/runtimes/test-variables.yml b/eng/pipelines/common/templates/runtimes/test-variables.yml index 7a476cef0d82fe..d3eb48f309df73 100644 --- a/eng/pipelines/common/templates/runtimes/test-variables.yml +++ b/eng/pipelines/common/templates/runtimes/test-variables.yml @@ -73,11 +73,15 @@ variables: value: 120 - name: runtimeFlavorArgs - value: '-nativeaot' + value: '' + + - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + - name: runtimeFlavorArgs + value: '-mono' - # - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: - # - name: runtimeFlavorArgs - # value: '-mono' + - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'iossimulator', 'tvos', 'tvossimulator', 'maccatalyst')) }}: + - name: runtimeFlavorArgs + value: '-nativeaot' - name: runtimeVariantArg value: '' diff --git a/eng/pipelines/common/variables.yml b/eng/pipelines/common/variables.yml index 2f531aa69be8b6..f6d0f4a19579b0 100644 --- a/eng/pipelines/common/variables.yml +++ b/eng/pipelines/common/variables.yml @@ -20,7 +20,7 @@ variables: - name: isWasmOnlyBuild value: ${{ in(variables['Build.DefinitionName'], 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-wasm-dbgtests', 'runtime-wasm-optional') }} - name: isiOSLikeOnlyBuild - value: ${{ in(variables['Build.DefinitionName'], 'runtime-ioslike') }} + value: ${{ in(variables['Build.DefinitionName'], 'runtime-ioslike', 'runtime-ioslike-mono', 'runtime-ioslike-coreclr') }} - name: isiOSLikeSimulatorOnlyBuild value: ${{ in(variables['Build.DefinitionName'], 'runtime-ioslikesimulator') }} - name: isAndroidOnlyBuild @@ -32,14 +32,14 @@ variables: - name: isLinuxBionicOnlyBuild value: ${{ in(variables['Build.DefinitionName'], 'runtime-linuxbionic') }} - name: isRunSmokeTestsOnly - value: ${{ notin(variables['Build.DefinitionName'], 'runtime-extra-platforms', 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-ioslike', 'runtime-ioslikesimulator', 'runtime-android', 'runtime-androidemulator', 'runtime-maccatalyst', 'runtime-linuxbionic') }} + value: ${{ notin(variables['Build.DefinitionName'], 'runtime-extra-platforms', 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-ioslike', 'runtime-ioslike-mono', 'runtime-ioslike-coreclr', 'runtime-ioslikesimulator', 'runtime-android', 'runtime-androidemulator', 'runtime-maccatalyst', 'runtime-linuxbionic') }} - name: isNotSpecificPlatformOnlyBuild - value: ${{ notin(variables['Build.DefinitionName'], 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-ioslike', 'runtime-ioslikesimulator', 'runtime-android', 'runtime-androidemulator', 'runtime-maccatalyst', 'runtime-linuxbionic') }} + value: ${{ notin(variables['Build.DefinitionName'], 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-ioslike', 'runtime-ioslike-mono', 'runtime-ioslike-coreclr', 'runtime-ioslikesimulator', 'runtime-android', 'runtime-androidemulator', 'runtime-maccatalyst', 'runtime-linuxbionic') }} # We only run evaluate paths on runtime, runtime-staging and runtime-community pipelines on PRs # keep in sync with /eng/pipelines/common/xplat-setup.yml - name: dependOnEvaluatePaths - value: ${{ and(eq(variables['Build.Reason'], 'PullRequest'), in(variables['Build.DefinitionName'], 'runtime', 'runtime-staging', 'runtime-community', 'runtime-extra-platforms', 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-ioslike', 'runtime-ioslikesimulator', 'runtime-android', 'runtime-androidemulator', 'runtime-maccatalyst', 'runtime-linuxbionic', 'dotnet-linker-tests', 'runtime-dev-innerloop', 'runtime-coreclr superpmi-replay', 'runtime-coreclr superpmi-diffs')) }} + value: ${{ and(eq(variables['Build.Reason'], 'PullRequest'), in(variables['Build.DefinitionName'], 'runtime', 'runtime-staging', 'runtime-community', 'runtime-extra-platforms', 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-ioslike', 'runtime-ioslike-mono', 'runtime-ioslike-coreclr', 'runtime-ioslikesimulator', 'runtime-android', 'runtime-androidemulator', 'runtime-maccatalyst', 'runtime-linuxbionic', 'dotnet-linker-tests', 'runtime-dev-innerloop', 'runtime-coreclr superpmi-replay', 'runtime-coreclr superpmi-diffs')) }} - name: debugOnPrReleaseOnRolling ${{ if ne(variables['Build.Reason'], 'PullRequest') }}: value: Release diff --git a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml index a9c27706b439d8..a6a6b90047bbb8 100644 --- a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml +++ b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml @@ -1,106 +1,106 @@ jobs: -# - ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: +- ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: -# # build mono -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/mono/templates/build-job.yml -# runtimeFlavor: mono -# buildConfig: release -# platforms: -# - linux_x64 + # build mono + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_x64 -# # build coreclr and libraries -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml -# buildConfig: release -# platforms: -# - linux_x64 -# jobParameters: -# testGroup: perf + # build coreclr and libraries + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml + buildConfig: release + platforms: + - linux_x64 + jobParameters: + testGroup: perf -# - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: +- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: -# # build coreclr and libraries -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml -# buildConfig: release -# platforms: -# - linux_x64 -# - windows_x64 -# - windows_x86 -# - linux_musl_x64 -# jobParameters: -# testGroup: perf + # build coreclr and libraries + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml + buildConfig: release + platforms: + - linux_x64 + - windows_x64 + - windows_x86 + - linux_musl_x64 + jobParameters: + testGroup: perf -# # build mono for AOT -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: release -# runtimeFlavor: mono -# platforms: -# - linux_x64 -# jobParameters: -# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) -# nameSuffix: AOT -# isOfficialBuild: false -# extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml -# extraStepsParameters: -# rootFolder: '$(Build.SourcesDirectory)/artifacts/' -# includeRootFolder: true -# displayName: AOT Mono Artifacts -# artifactName: LinuxMonoAOTx64 -# archiveExtension: '.tar.gz' -# archiveType: tar -# tarCompression: gz + # build mono for AOT + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - linux_x64 + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: AOT + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: AOT Mono Artifacts + artifactName: LinuxMonoAOTx64 + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz -# # build mono Android scenarios -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: release -# runtimeFlavor: mono -# platforms: -# - android_arm64 -# jobParameters: -# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) -# nameSuffix: AndroidMono -# isOfficialBuild: false -# extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml -# extraStepsParameters: -# rootFolder: '$(Build.SourcesDirectory)/artifacts/' -# includeRootFolder: true -# displayName: Android Mono Artifacts -# artifactName: AndroidMonoarm64 -# archiveExtension: '.tar.gz' -# archiveType: tar -# tarCompression: gz + # build mono Android scenarios + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - android_arm64 + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: AndroidMono + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: Android Mono Artifacts + artifactName: AndroidMonoarm64 + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz -# # build mono iOS scenarios -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: release -# runtimeFlavor: mono -# platforms: -# - ios_arm64 -# jobParameters: -# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) -# nameSuffix: iOSMono -# isOfficialBuild: false -# extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml -# extraStepsParameters: -# rootFolder: '$(Build.SourcesDirectory)/artifacts/' -# includeRootFolder: true -# displayName: iOS Mono Artifacts -# artifactName: iOSMonoarm64 -# archiveExtension: '.tar.gz' -# archiveType: tar -# tarCompression: gz + # build mono iOS scenarios + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - ios_arm64 + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: iOSMono + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: iOS Mono Artifacts + artifactName: iOSMonoarm64 + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz # build NativeAOT iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml @@ -124,99 +124,99 @@ jobs: archiveType: tar tarCompression: gz - # # build mono - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - linux_x64 + # build mono + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_x64 - # # run android scenarios - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - windows_x64 - # jobParameters: - # testGroup: perf - # runtimeType: AndroidMono - # projectFile: android_scenarios.proj - # runKind: android_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfpixel4a' + # run android scenarios + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - windows_x64 + jobParameters: + testGroup: perf + runtimeType: AndroidMono + projectFile: android_scenarios.proj + runKind: android_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfpixel4a' - # # run mono iOS scenarios scenarios - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: perf - # runtimeType: iOSMono - # projectFile: ios_scenarios.proj - # runKind: ios_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfiphone12mini' - # iOSLlvmBuild: False - # iOSStripSymbols: False + # run mono iOS scenarios scenarios + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: perf + runtimeType: iOSMono + projectFile: ios_scenarios.proj + runKind: ios_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfiphone12mini' + iOSLlvmBuild: False + iOSStripSymbols: False - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: perf - # runtimeType: iOSMono - # projectFile: ios_scenarios.proj - # runKind: ios_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfiphone12mini' - # iOSLlvmBuild: False - # iOSStripSymbols: True + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: perf + runtimeType: iOSMono + projectFile: ios_scenarios.proj + runKind: ios_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfiphone12mini' + iOSLlvmBuild: False + iOSStripSymbols: True - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: perf - # runtimeType: iOSMono - # projectFile: ios_scenarios.proj - # runKind: ios_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfiphone12mini' - # iOSLlvmBuild: True - # iOSStripSymbols: False + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: perf + runtimeType: iOSMono + projectFile: ios_scenarios.proj + runKind: ios_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfiphone12mini' + iOSLlvmBuild: True + iOSStripSymbols: False - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: perf - # runtimeType: iOSMono - # projectFile: ios_scenarios.proj - # runKind: ios_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfiphone12mini' - # iOSLlvmBuild: True - # iOSStripSymbols: True + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: perf + runtimeType: iOSMono + projectFile: ios_scenarios.proj + runKind: ios_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfiphone12mini' + iOSLlvmBuild: True + iOSStripSymbols: True # run NativeAOT iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml @@ -251,201 +251,201 @@ jobs: logicalmachine: 'perfiphone12mini' iOSStripSymbols: True - # # run mono microbenchmarks perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - linux_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # runtimeType: mono - # projectFile: microbenchmarks.proj - # runKind: micro_mono - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' + # run mono microbenchmarks perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + runtimeType: mono + projectFile: microbenchmarks.proj + runKind: micro_mono + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' - # # run mono interpreter perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - linux_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # runtimeType: mono - # codeGenType: 'Interpreter' - # projectFile: microbenchmarks.proj - # runKind: micro_mono - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' + # run mono interpreter perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + runtimeType: mono + codeGenType: 'Interpreter' + projectFile: microbenchmarks.proj + runKind: micro_mono + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' - # # run mono aot microbenchmarks perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? - # buildConfig: release - # runtimeFlavor: aot - # platforms: - # - linux_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # runtimeType: mono - # codeGenType: 'AOT' - # projectFile: microbenchmarks.proj - # runKind: micro_mono - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' + # run mono aot microbenchmarks perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? + buildConfig: release + runtimeFlavor: aot + platforms: + - linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + runtimeType: mono + codeGenType: 'AOT' + projectFile: microbenchmarks.proj + runKind: micro_mono + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' - # # run coreclr perftiger microbenchmarks perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - linux_x64 - # - windows_x64 - # - windows_x86 - # - linux_musl_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' + # run coreclr perftiger microbenchmarks perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - linux_x64 + - windows_x64 + - windows_x86 + - linux_musl_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' - # # run coreclr perftiger microbenchmarks no dynamic pgo perf jobs - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - windows_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' - # pgoRunType: -NoDynamicPGO + # run coreclr perftiger microbenchmarks no dynamic pgo perf jobs + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - windows_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' + pgoRunType: -NoDynamicPGO - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - linux_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' - # pgoRunType: --nodynamicpgo + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' + pgoRunType: --nodynamicpgo - # # run coreclr perftiger microbenchmarks physical promotion perf jobs - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - windows_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' - # physicalPromotionRunType: -PhysicalPromotion + # run coreclr perftiger microbenchmarks physical promotion perf jobs + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - windows_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' + physicalPromotionRunType: -PhysicalPromotion - # # run coreclr perfowl microbenchmarks perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - linux_x64 - # - windows_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perfowl' + # run coreclr perfowl microbenchmarks perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - linux_x64 + - windows_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perfowl' - # # run coreclr crossgen perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - linux_x64 - # - windows_x64 - # - windows_x86 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: crossgen_perf.proj - # runKind: crossgen_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perftiger' + # run coreclr crossgen perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - linux_x64 + - windows_x64 + - windows_x86 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: crossgen_perf.proj + runKind: crossgen_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perftiger' - # # build mono runtime packs - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - android_arm64 - # jobParameters: - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # nameSuffix: Mono_Packs - # isOfficialBuild: false - # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - # extraStepsParameters: - # name: MonoRuntimePacks + # build mono runtime packs + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - android_arm64 + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: Mono_Packs + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: MonoRuntimePacks - # # build PerfBDN app - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - ios_arm64 - # jobParameters: - # dependsOn: - # - Build_android_arm64_release_Mono_Packs - # buildArgs: -s mono -c $(_BuildConfig) - # nameSuffix: PerfBDNApp - # isOfficialBuild: false - # pool: - # vmImage: 'macos-12' - # extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-bdn-app.yml - # extraStepsParameters: - # rootFolder: '$(Build.SourcesDirectory)/artifacts/' - # includeRootFolder: true - # displayName: Android BDN App Artifacts - # artifactName: PerfBDNAppArm - # archiveExtension: '.tar.gz' - # archiveType: tar - # tarCompression: gz + # build PerfBDN app + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - ios_arm64 + jobParameters: + dependsOn: + - Build_android_arm64_release_Mono_Packs + buildArgs: -s mono -c $(_BuildConfig) + nameSuffix: PerfBDNApp + isOfficialBuild: false + pool: + vmImage: 'macos-12' + extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-bdn-app.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: Android BDN App Artifacts + artifactName: PerfBDNAppArm + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 04e90898d76f75..ae734cbfdaa76d 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -42,12 +42,12 @@ extends: - stage: Build jobs: - # - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml - # parameters: - # collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }} - # ${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: - # runProfile: 'non-v8' - # ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: - # runProfile: 'v8' + - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml + parameters: + collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }} + ${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: + runProfile: 'non-v8' + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: + runProfile: 'v8' - template: /eng/pipelines/coreclr/perf-non-wasm-jobs.yml diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index f856d6211df258..0e5b9afa4bd77e 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -7,81 +7,120 @@ parameters: isExtraPlatformsBuild: false isiOSLikeOnlyBuild: false isRollingBuild: false + isMonoOnlyBuild: false + isCoreclrOnlyBuild: false jobs: -# -# iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size -# Build the whole product using Mono and run libraries tests -# -- 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 - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} - platforms: - - ios_arm64 - - tvos_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: AllSubsets_Mono - isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }} - buildArgs: -s mono+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true /p:IsManualOrRollingBuild=true - timeoutInMinutes: 180 - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true +- ${{ if eq(parameters.isCoreclrOnlyBuild, false)) }}: + # + # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size + # Build the whole product using Mono and run libraries tests + # + - 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 + isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + platforms: + - ios_arm64 + - tvos_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: AllSubsets_Mono + isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }} + buildArgs: -s mono+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true /p:IsManualOrRollingBuild=true + timeoutInMinutes: 180 + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true -# -# Build the whole product using Mono for iOS/tvOS and run runtime tests with iOS/tvOS devices -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} - platforms: - - ios_arm64 - - tvos_arm64 - variables: - - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: pr/dotnet/runtime/$(Build.SourceBranch) - - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: ci/dotnet/runtime/$(Build.SourceBranch) - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_RuntimeTests - buildArgs: -s mono+libs -c $(_BuildConfig) - timeoutInMinutes: 240 - # extra steps, run tests - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - # FIXME: Currently, tracing/eventpipe tests are only enabled on iOS platforms. It should be expanded to include all runtime tests. Tracking issue: https://github.com/dotnet/runtime/issues/84254 - testBuildArgs: tree tracing/eventpipe - testRunNamePrefixSuffix: Mono_$(_BuildConfig) + # + # Build the whole product using Mono for iOS/tvOS and run runtime tests with iOS/tvOS devices + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + platforms: + - ios_arm64 + - tvos_arm64 + variables: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: pr/dotnet/runtime/$(Build.SourceBranch) + - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: ci/dotnet/runtime/$(Build.SourceBranch) + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_RuntimeTests + buildArgs: -s mono+libs -c $(_BuildConfig) + timeoutInMinutes: 240 + # extra steps, run tests + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: innerloop + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + # FIXME: Currently, tracing/eventpipe tests are only enabled on iOS platforms. It should be expanded to include all runtime tests. Tracking issue: https://github.com/dotnet/runtime/issues/84254 + testBuildArgs: tree tracing/eventpipe + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + +- ${{ if eq(parameters.isMonoOnlyBuild, false)) }}: + # + # Build the whole product using NativeAOT for iOS/tvOS and run runtime tests with iOS/tvOS devices + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: coreclr + isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + platforms: + - ios_arm64 + - tvos_arm64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_NativeAOT_RuntimeTests + timeoutInMinutes: 240 + buildArgs: -s clr.aot+libs -c $(_BuildConfig) -rc $(_BuildConfig) + # extra steps, run tests + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: innerloop + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testBuildArgs: tree nativeaot/SmokeTests/UnitTests + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) \ No newline at end of file diff --git a/eng/pipelines/runtime-ioslike-coreclr.yml b/eng/pipelines/runtime-ioslike-coreclr.yml new file mode 100644 index 00000000000000..37c5767368a6da --- /dev/null +++ b/eng/pipelines/runtime-ioslike-coreclr.yml @@ -0,0 +1,21 @@ +# This is a wrapper yml for `runtime-extra-platforms-ioslike.yml`, which +# has all the iOS/tvOS jobs. This file is essentially so we can have point +# the pipeline in azdo UI to this, and thus avoid any scheduled triggers + +trigger: none + +variables: + - template: /eng/pipelines/common/variables.yml + +extends: + template: /eng/pipelines/common/templates/pipeline-with-resources.yml + parameters: + stages: + - stage: Build + jobs: + - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml + parameters: + isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }} + isiOSLikeOnlyBuild: ${{ variables.isiOSLikeOnlyBuild }} + isRollingBuild: ${{ variables.isRollingBuild }} + isCoreclrOnlyBuild: true diff --git a/eng/pipelines/runtime-ioslike-mono.yml b/eng/pipelines/runtime-ioslike-mono.yml new file mode 100644 index 00000000000000..6735b73819b315 --- /dev/null +++ b/eng/pipelines/runtime-ioslike-mono.yml @@ -0,0 +1,21 @@ +# This is a wrapper yml for `runtime-extra-platforms-ioslike.yml`, which +# has all the iOS/tvOS jobs. This file is essentially so we can have point +# the pipeline in azdo UI to this, and thus avoid any scheduled triggers + +trigger: none + +variables: + - template: /eng/pipelines/common/variables.yml + +extends: + template: /eng/pipelines/common/templates/pipeline-with-resources.yml + parameters: + stages: + - stage: Build + jobs: + - template: /eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml + parameters: + isExtraPlatformsBuild: ${{ variables.isExtraPlatformsBuild }} + isiOSLikeOnlyBuild: ${{ variables.isiOSLikeOnlyBuild }} + isRollingBuild: ${{ variables.isRollingBuild }} + isMonoOnlyBuild: true From 5dd37a6baa3325693eed71198108b7d3caa4cd2b Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 13 Jun 2023 15:23:07 +0200 Subject: [PATCH 061/109] Revert disabled tests --- eng/pipelines/runtime-linker-tests.yml | 132 +- eng/pipelines/runtime-staging.yml | 82 +- eng/pipelines/runtime.yml | 2779 ++++++++--------- .../SmokeTests/UnitTests/Delegates.cs | 4 +- .../SmokeTests/UnitTests/Generics.cs | 3 + .../SmokeTests/UnitTests/Interfaces.cs | 3 + .../SmokeTests/UnitTests/Threading.cs | 3 + 7 files changed, 1491 insertions(+), 1515 deletions(-) diff --git a/eng/pipelines/runtime-linker-tests.yml b/eng/pipelines/runtime-linker-tests.yml index ad7a6df8a7f58b..314249cd181f4a 100644 --- a/eng/pipelines/runtime-linker-tests.yml +++ b/eng/pipelines/runtime-linker-tests.yml @@ -61,71 +61,71 @@ extends: - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - template: /eng/pipelines/common/evaluate-default-paths.yml - # # - # # Build and Test ILLink in Release config vertical for Windows, Linux and OSX - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # platforms: - # - windows_x64 - # - osx_x64 - # - linux_x64 - # jobParameters: - # testGroup: innerloop - # testResultsFormat: 'vstest' - # timeoutInMinutes: 120 - # nameSuffix: ILLink_Runtime_Testing - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - # buildArgs: -s tools.illinktests -test -c $(_BuildConfig) + # + # Build and Test ILLink in Release config vertical for Windows, Linux and OSX + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + platforms: + - windows_x64 + - osx_x64 + - linux_x64 + jobParameters: + testGroup: innerloop + testResultsFormat: 'vstest' + timeoutInMinutes: 120 + nameSuffix: ILLink_Runtime_Testing + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), + eq(variables['isRollingBuild'], true)) + buildArgs: -s tools.illinktests -test -c $(_BuildConfig) - # # - # # Build Release config vertical for Windows, Linux, and OSX - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # platforms: - # - windows_x64 - # - osx_x64 - # - linux_x64 - # jobParameters: - # testGroup: innerloop - # timeoutInMinutes: 120 - # nameSuffix: Runtime_Release - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - # buildArgs: -s clr+libs -c $(_BuildConfig) - # extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml + # + # Build Release config vertical for Windows, Linux, and OSX + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + platforms: + - windows_x64 + - osx_x64 + - linux_x64 + jobParameters: + testGroup: innerloop + timeoutInMinutes: 120 + nameSuffix: Runtime_Release + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + buildArgs: -s clr+libs -c $(_BuildConfig) + extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml - # # - # # Build Release config vertical for Browser-wasm - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # platforms: - # - browser_wasm - # jobParameters: - # testGroup: innerloop - # timeoutInMinutes: 120 - # nameSuffix: Runtime_Release - # buildArgs: -s mono+libs -c $(_BuildConfig) -p:WasmBuildNative=false -p:AotHostArchitecture=x64 -p:AotHostOS=$(_hostedOS) - # condition: - # or( - # eq(variables['isRollingBuild'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm_specific_except_wbt_dbg.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['DarcDependenciesChanged.Microsoft_NET_ILLink_Tasks'], true)) - # extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml - # extraStepsParameters: - # extraTestArgs: '/p:WasmBuildNative=false' + # + # Build Release config vertical for Browser-wasm + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + platforms: + - browser_wasm + jobParameters: + testGroup: innerloop + timeoutInMinutes: 120 + nameSuffix: Runtime_Release + buildArgs: -s mono+libs -c $(_BuildConfig) -p:WasmBuildNative=false -p:AotHostArchitecture=x64 -p:AotHostOS=$(_hostedOS) + condition: + or( + eq(variables['isRollingBuild'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_wasm_specific_except_wbt_dbg.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['DarcDependenciesChanged.Microsoft_NET_ILLink_Tasks'], true)) + extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml + extraStepsParameters: + extraTestArgs: '/p:WasmBuildNative=false' diff --git a/eng/pipelines/runtime-staging.yml b/eng/pipelines/runtime-staging.yml index 3c1ec70634c11f..322faae117b71d 100644 --- a/eng/pipelines/runtime-staging.yml +++ b/eng/pipelines/runtime-staging.yml @@ -62,44 +62,44 @@ extends: - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - template: /eng/pipelines/common/evaluate-default-paths.yml - # # - # # Build the whole product using Mono and run runtime tests with the JIT. - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - iossimulator_x64 - # variables: - # - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - # - name: _HelixSource - # value: pr/dotnet/runtime/$(Build.SourceBranch) - # - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: - # - name: _HelixSource - # value: ci/dotnet/runtime/$(Build.SourceBranch) - # - name: timeoutPerTestInMinutes - # value: 60 - # - name: timeoutPerTestCollectionInMinutes - # value: 180 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_RuntimeTests - # runtimeVariant: minijit - # buildArgs: -s mono+libs -c $(_BuildConfig) - # timeoutInMinutes: 240 - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - # ${{ if eq(variables['isRollingBuild'], true) }}: - # # extra steps, run tests - # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: Mono_$(_BuildConfig) - # extraVariablesTemplates: - # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # + # Build the whole product using Mono and run runtime tests with the JIT. + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - iossimulator_x64 + variables: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: pr/dotnet/runtime/$(Build.SourceBranch) + - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: ci/dotnet/runtime/$(Build.SourceBranch) + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_RuntimeTests + runtimeVariant: minijit + buildArgs: -s mono+libs -c $(_BuildConfig) + timeoutInMinutes: 240 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + ${{ if eq(variables['isRollingBuild'], true) }}: + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 18e755dcf98193..9fe2862edc9e83 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -61,1413 +61,1092 @@ extends: - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - template: /eng/pipelines/common/evaluate-default-paths.yml - # # - # # Build CoreCLR checked - # # Only when CoreCLR is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - # buildConfig: checked - # platforms: - # - linux_x86 - # - linux_x64 - # - linux_arm - # - linux_arm64 - # - linux_riscv64 - # - linux_musl_arm - # - linux_musl_arm64 - # - linux_musl_x64 - # - osx_arm64 - # - tizen_armel - # - windows_x86 - # - windows_x64 - # - windows_arm64 - # jobParameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build the whole product using GNU compiler toolchain - # # When CoreCLR, Mono, Libraries, Installer and src/tests are changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: checked - # platforms: - # - gcc_linux_x64 - # jobParameters: - # testGroup: innerloop - # nameSuffix: Native_GCC - # buildArgs: -s clr.native+libs.native+mono+host.native -c $(_BuildConfig) -gcc - # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests.yml - # extraStepsParameters: - # testBuildArgs: skipmanaged skipgeneratelayout skiprestorepackages -gcc - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build CoreCLR osx_x64 checked - # # Only when CoreCLR or Libraries is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - # buildConfig: checked - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build CoreCLR release - # # Always as they are needed by Installer and we always build and test the Installer. - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - # buildConfig: release - # platforms: - # - osx_arm64 - # - osx_x64 - # - linux_x64 - # - linux_arm - # - linux_arm64 - # - linux_musl_x64 - # - linux_musl_arm - # - linux_musl_arm64 - # - windows_x64 - # - windows_x86 - # - windows_arm64 - # - freebsd_x64 - # jobParameters: - # testGroup: innerloop - # # Mono/runtimetests also need this, but skip for wasm - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build CoreCLR Formatting Job - # # Only when CoreCLR is changed, and only in the 'main' branch (no release branches; - # # both Rolling and PR builds). - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml - # platforms: - # - linux_x64 - # - windows_x64 - # jobParameters: - # condition: >- - # and( - # or( - # eq(variables['Build.SourceBranchName'], 'main'), - # eq(variables['System.PullRequest.TargetBranch'], 'main')), - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_jit.containsChange'], true), - # eq(variables['isRollingBuild'], true))) - - # # - # # CoreCLR NativeAOT debug build and smoke tests - # # Only when CoreCLR is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # buildConfig: Debug - # platforms: - # - linux_x64 - # - windows_x64 - # variables: - # - name: timeoutPerTestInMinutes - # value: 60 - # - name: timeoutPerTestCollectionInMinutes - # value: 180 - # jobParameters: - # timeoutInMinutes: 120 - # nameSuffix: NativeAOT - # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - # extraStepsParameters: - # creator: dotnet-bot - # testBuildArgs: nativeaot tree nativeaot - # liveLibrariesBuildConfig: Release - # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - # extraVariablesTemplates: - # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - # parameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isFullMatrix'], true)) - - # # - # # CoreCLR NativeAOT checked build and smoke tests - # # Only when CoreCLR is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # buildConfig: Checked - # platforms: - # - windows_x64 - # variables: - # - name: timeoutPerTestInMinutes - # value: 60 - # - name: timeoutPerTestCollectionInMinutes - # value: 180 - # jobParameters: - # timeoutInMinutes: 120 - # nameSuffix: NativeAOT - # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - # extraStepsParameters: - # creator: dotnet-bot - # testBuildArgs: 'nativeaot tree ";nativeaot;Loader;Interop;tracing/eventpipe/config;" test tracing/eventcounter/runtimecounters.csproj /p:BuildNativeAotFrameworkObjects=true' - # liveLibrariesBuildConfig: Release - # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - # extraVariablesTemplates: - # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - # parameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isFullMatrix'], true)) - - # # - # # CoreCLR NativeAOT release build and smoke tests - # # Only when CoreCLR is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # buildConfig: Release - # platforms: - # - linux_x64 - # - windows_x64 - # - osx_x64 - # - linux_arm64 - # - windows_arm64 - # - osx_arm64 - # variables: - # - name: timeoutPerTestInMinutes - # value: 60 - # - name: timeoutPerTestCollectionInMinutes - # value: 180 - # jobParameters: - # testGroup: innerloop - # timeoutInMinutes: 120 - # nameSuffix: NativeAOT - # buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release - # extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml - # extraStepsParameters: - # creator: dotnet-bot - # testBuildArgs: 'nativeaot tree ";nativeaot;tracing/eventpipe/simpleprovidervalidation;"' - # liveLibrariesBuildConfig: Release - # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - # extraVariablesTemplates: - # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - # parameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isFullMatrix'], true)) - - # # - # # CoreCLR NativeAOT release build and libraries tests - # # Only when CoreCLR or library is 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 - # platforms: - # - windows_arm64 - # - linux_arm64 - # - osx_arm64 - # jobParameters: - # testGroup: innerloop - # isSingleFile: true - # nameSuffix: NativeAOT_Libraries - # buildArgs: -s clr.aot+host.native+libs+libs.tests -c $(_BuildConfig) /p:TestNativeAot=true /p:RunSmokeTestsOnly=true /p:ArchiveTests=true - # timeoutInMinutes: 240 # Doesn't actually take long, but we've seen the ARM64 Helix queue often get backlogged for 2+ hours - # # extra steps, run tests - # extraStepsTemplate: /eng/pipelines/libraries/helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(variables['isFullMatrix'], true)) - - # # Build and test clr tools - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: checked - # platforms: - # - linux_x64 - # jobParameters: - # timeoutInMinutes: 120 - # nameSuffix: CLR_Tools_Tests - # buildArgs: -s clr.aot+clr.iltools+libs+clr.toolstests -c $(_BuildConfig) -test - # enablePublishTestResults: true - # testResultsFormat: 'xunit' - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # Build Mono AOT offset headers once, for consumption elsewhere - # # Only when mono changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml - # buildConfig: release - # platforms: - # - android_x64 - # - browser_wasm - # - tvos_arm64 - # - ios_arm64 - # - maccatalyst_x64 - # jobParameters: - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # # needed by crossaot - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # Build the whole product using Mono runtime - # # Only when libraries, mono or installer are changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # runtimeFlavor: mono - # platforms: - # - tvossimulator_x64 - # - linux_arm - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # 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_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - linux_musl_x64 - # - linux_riscv64 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # 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_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # WebAssembly legs - # # - # - template: /eng/pipelines/common/templates/wasm-library-tests.yml - # parameters: - # platforms: - # - browser_wasm - # alwaysRun: ${{ variables.isRollingBuild }} - # scenarios: - # - normal - # - WasmTestOnBrowser - - # - template: /eng/pipelines/common/templates/wasm-library-tests.yml - # parameters: - # platforms: - # - browser_wasm_win - # alwaysRun: ${{ variables.isRollingBuild }} - # scenarios: - # - WasmTestOnBrowser - - # # EAT Library tests - only run on linux - # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - # parameters: - # platforms: - # - browser_wasm - # nameSuffix: _EAT - # runAOT: false - # shouldRunSmokeOnly: false - # alwaysRun: ${{ variables.isRollingBuild }} - - # # AOT Library tests - # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - # parameters: - # platforms: - # - browser_wasm - # nameSuffix: _AOT - # runAOT: true - # shouldRunSmokeOnly: true - # alwaysRun: ${{ variables.isRollingBuild }} - - # - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml - # parameters: - # platforms: - # - browser_wasm_win - # nameSuffix: _AOT - # runAOT: true - # shouldRunSmokeOnly: true - # alwaysRun: ${{ variables.isRollingBuild }} - - # # Wasm.Build.Tests - # - template: /eng/pipelines/common/templates/wasm-build-tests.yml - # parameters: - # platforms: - # - browser_wasm - # - browser_wasm_win - # alwaysRun: ${{ variables.isRollingBuild }} - - # # Wasm Debugger tests - # - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml - # parameters: - # platforms: - # - browser_wasm - # - browser_wasm_win - # alwaysRun: ${{ variables.isRollingBuild }} - - # # Wasm runtime tests - # - template: /eng/pipelines/common/templates/wasm-runtime-tests.yml - # parameters: - # platforms: - # - browser_wasm - # alwaysRun: ${{ variables.isRollingBuild }} - - # # Build and Smoke Tests only - Wasm Threading Legs - # - template: /eng/pipelines/common/templates/wasm-library-tests.yml - # parameters: - # platforms: - # - browser_wasm - # nameSuffix: _Threading_Smoke - # extraBuildArgs: /p:MonoWasmBuildVariant=multithread /p:_WasmPThreadPoolSize=8 - # shouldRunSmokeOnly: true - # alwaysRun: ${{ variables.isRollingBuild }} - # scenarios: - # - WasmTestOnBrowser - - # - template: /eng/pipelines/common/templates/wasm-build-only.yml - # parameters: - # platforms: - # - browser_wasm - # nameSuffix: _Threading_PerfTracing - # extraBuildArgs: /p:MonoWasmBuildVariant=perftrace - # alwaysRun: ${{ variables.isRollingBuild }} - - # # WASI/WASM - - # - template: /eng/pipelines/common/templates/wasm-library-tests.yml - # parameters: - # platforms: - # - wasi_wasm - # - wasi_wasm_win - # nameSuffix: '_Smoke' - # extraBuildArgs: /p:EnableAggressiveTrimming=true /p:RunWasmSamples=true - # shouldContinueOnError: true - # shouldRunSmokeOnly: true - # alwaysRun: ${{ variables.isRollingBuild }} - # scenarios: - # - normal - - # - template: /eng/pipelines/common/templates/wasm-build-tests.yml - # parameters: - # platforms: - # - wasi_wasm - # - wasi_wasm_win - # alwaysRun: ${{ variables.isRollingBuild }} - - # # - # # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size - # # Build the whole product using Mono and run libraries tests - # # - # - 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: - # - ios_arm64 - # - tvos_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: AllSubsets_Mono - # buildArgs: -s mono+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true - # timeoutInMinutes: 180 - # 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_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - # # extra steps, run tests - # extraStepsTemplate: /eng/pipelines/libraries/helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: Mono_$(_BuildConfig) - # extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true - # condition: >- - # or( - # eq(variables['librariesContainsChange'], true), - # eq(variables['monoContainsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # MacCatalyst interp - requires AOT Compilation and Interp flags - # # Build the whole product using Mono and run libraries tests - # # - # # - # # Disabled pending queue backup investigation - # # - # #- 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: - # # - maccatalyst_x64 - # # - ${{ if eq(variables['isRollingBuild'], true) }}: - # # - maccatalyst_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: AllSubsets_Mono - # # buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true - # # timeoutInMinutes: 180 - # # 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_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)) - - # # - # # Build Mono and Installer on LLVMJIT mode - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_LLVMJIT - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - # 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_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # runtimeFlavor: mono - # platforms: - # - linux_x64 - # - linux_arm64 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_LLVMJIT - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - # 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_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono and Installer on LLVMAOT mode - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - linux_x64 - # - linux_arm64 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_LLVMAOT - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - # 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_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_LLVMAOT - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - # 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_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono debug - # # Only when mono changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: debug - # platforms: - # - osx_x64 - # - osx_arm64 - # - linux_x64 - # - linux_arm64 - # # - linux_musl_arm64 - # - windows_x64 - # - windows_x86 - # # - windows_arm64 - # jobParameters: - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono release AOT cross-compilers - # # Only when mono changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - linux_x64 - # # - linux_arm64 - # # - linux_musl_arm64 - # - windows_x64 - # # - windows_x86 - # # - windows_arm64 - # jobParameters: - # runtimeVariant: crossaot - # dependsOn: - # - mono_android_offsets - # - mono_browser_offsets - # monoCrossAOTTargetOS: - # - android - # - browser - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - osx_x64 - # jobParameters: - # runtimeVariant: crossaot - # dependsOn: - # - mono_android_offsets - # - mono_browser_offsets - # - mono_tvos_offsets - # - mono_ios_offsets - # - mono_maccatalyst_offsets - # monoCrossAOTTargetOS: - # - android - # - browser - # - tvos - # - ios - # - maccatalyst - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - linux_arm64 - # - osx_arm64 - # jobParameters: - # runtimeVariant: crossaot - # dependsOn: - # - mono_browser_offsets - # monoCrossAOTTargetOS: - # - browser - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono release - # # Only when libraries or mono changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - linux_x64 - # # - linux_musl_arm64 - # - windows_x64 - # - windows_x86 - # # - windows_arm64 - # jobParameters: - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono release - # # Only when libraries, mono, or the runtime tests changed - # # Currently only these architectures are needed for the runtime tests. - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - osx_x64 - # - linux_arm64 - # jobParameters: - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build Mono release with LLVM AOT - # # Only when mono, or the runtime tests changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - linux_x64 - # - linux_arm64 - # jobParameters: - # runtimeVariant: llvmaot - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build libraries using live CoreLib - # # These set of libraries are built always no matter what changed - # # The reason for that is because Corelib and Installer needs it and - # # These are part of the test matrix for Libraries changes. - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/build-job.yml - # buildConfig: Release - # platforms: - # - linux_arm - # - linux_musl_arm - # - linux_musl_arm64 - # - windows_arm64 - # - windows_x86 - # jobParameters: - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/build-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # - linux_arm64 - # - linux_musl_x64 - # - linux_x64 - # - osx_arm64 - # - osx_x64 - # - windows_x64 - # - freebsd_x64 - # jobParameters: - # testScope: innerloop - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Libraries debug build that only runs when coreclr is changed - # # Only do this on PR builds since we use the Release builds for these test runs in CI - # # and those are already built above - # # - # - ${{ if eq(variables['isRollingBuild'], false) }}: - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/build-job.yml - # buildConfig: Debug - # platforms: - # - windows_x86 - # jobParameters: - # condition: >- - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) - - # # - # # Libraries release build that only runs when coreclr is changed in PRs - # # We need these for checked coreclr + release libraries tests runs. - # # - # - ${{ if eq(variables['isRollingBuild'], false) }}: - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/build-job.yml - # buildConfig: Release - # platforms: - # - linux_x64 - # - windows_x64 - # jobParameters: - # condition: >- - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/build-job.yml - # buildConfig: Release - # platforms: - # - windows_x86 - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # jobParameters: - # framework: net48 - # runTests: true - # testScope: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/build-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # - windows_x64 - # jobParameters: - # framework: allConfigurations - # runTests: true - # useHelix: false - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Installer Build and Test - # # These are always built since they only take like 15 minutes - # # we expect these to be done before we finish libraries or coreclr testing. - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/installer/jobs/build-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # - linux_musl_arm - # - linux_musl_arm64 - # - windows_x86 - # - windows_arm64 - # - linux_arm - # jobParameters: - # liveRuntimeBuildConfig: release - # liveLibrariesBuildConfig: Release - # runOnlyIfDependenciesSucceeded: true - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/installer/jobs/build-job.yml - # buildConfig: Release - # platforms: - # - osx_arm64 - # - osx_x64 - # - linux_x64 - # - linux_arm64 - # - linux_musl_x64 - # - windows_x64 - # - freebsd_x64 - # jobParameters: - # liveRuntimeBuildConfig: release - # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # runOnlyIfDependenciesSucceeded: true - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # CoreCLR Test builds using live libraries release build - # # Only when CoreCLR is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - # buildConfig: checked - # platforms: - # - CoreClrTestBuildHost # Either osx_x64 or linux_x64 - # jobParameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # CoreCLR Test executions using live libraries - # # Only when CoreCLR is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - # buildConfig: checked - # platforms: - # - linux_arm - # - windows_x86 - # - windows_arm64 - # helixQueueGroup: pr - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # jobParameters: - # testGroup: innerloop - # liveLibrariesBuildConfig: Release - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - # buildConfig: checked - # platforms: - # - osx_x64 - # - linux_x64 - # - linux_arm64 - # - windows_x64 - # helixQueueGroup: pr - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # jobParameters: - # testGroup: innerloop - # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - # buildConfig: checked - # platforms: - # - osx_arm64 - # helixQueueGroup: pr - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # jobParameters: - # testGroup: innerloop - # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Mono Test builds with CoreCLR runtime tests using live libraries debug build - # # Only when Mono is changed - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - CoreClrTestBuildHost # Either osx_x64 or linux_x64 - # jobParameters: - # testGroup: innerloop - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - windows_x64 - # helixQueueGroup: pr - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # jobParameters: - # testGroup: innerloop - # liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # liveRuntimeBuildConfig: release - # runtimeVariant: minijit - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Build the whole product using Mono and run runtime tests - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # - linux_arm64 - # variables: - # - name: timeoutPerTestInMinutes - # value: 60 - # - name: timeoutPerTestCollectionInMinutes - # value: 180 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests - # runtimeVariant: minijit - # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release - # timeoutInMinutes: 180 - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: Mono_Release - # extraVariablesTemplates: - # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - - # # - # # Mono CoreCLR runtime Test executions using live libraries in interpreter mode - # # Only when Mono is changed - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # variables: - # - name: timeoutPerTestInMinutes - # value: 60 - # - name: timeoutPerTestCollectionInMinutes - # value: 180 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests - # runtimeVariant: monointerpreter - # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release - # timeoutInMinutes: 180 - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: Mono_Release - # extraVariablesTemplates: - # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - # # - # # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT - # # Only when Mono is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # buildConfig: Release - # runtimeFlavor: mono - # platforms: - # - linux_x64 - # # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation - # #- linux_arm64 - # variables: - # - name: timeoutPerTestInMinutes - # value: 60 - # - name: timeoutPerTestCollectionInMinutes - # value: 180 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests - # runtimeVariant: llvmaot - # buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true - # timeoutInMinutes: 180 - - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # llvmAotStepContainer: linux_x64_llvmaot - # testRunNamePrefixSuffix: Mono_Release - # extraVariablesTemplates: - # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - - # # - # # Libraries Release Test Execution against a release mono runtime. - # # Only when libraries or mono changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # runtimeFlavor: mono - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # # - windows_x64 - # - osx_x64 - # - linux_arm64 - # - linux_x64 - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # jobParameters: - # isOfficialBuild: false - # runtimeDisplayName: mono - # testScope: innerloop - # liveRuntimeBuildConfig: release - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Libraries Release Test Execution against a release mono interpreter runtime. - # # Only when libraries or mono changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # runtimeFlavor: mono - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # # - windows_x64 - # #- osx_x64 - # - linux_x64 - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # jobParameters: - # isOfficialBuild: false - # interpreter: true - # runtimeDisplayName: mono_interpreter - # testScope: innerloop - # liveRuntimeBuildConfig: release - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Libraries Release Test Execution against a release coreclr runtime - # # Only when the PR contains a libraries change - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # buildConfig: Release - # platforms: - # - windows_x86 - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # jobParameters: - # isOfficialBuild: false - # testScope: innerloop - # liveRuntimeBuildConfig: release - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Libraries Debug Test Execution against a release coreclr runtime - # # Only when the PR contains a libraries change - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # - windows_x64 - # - osx_x64 - # - linux_x64 - # - linux_musl_x64 - # helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - # jobParameters: - # isOfficialBuild: false - # testScope: innerloop - # liveRuntimeBuildConfig: release - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # The next three jobs run checked coreclr + libraries tests. - # # The matrix looks like the following, where the right columns specify which configurations - # # the libraries tests are built in. - # # ________________________________________ - # # | Platform | PR | Rolling | - # # | ---------------- | ------- | ------- | - # # | linux-arm64 | Debug | Release | - # # | windows-x86 | Debug | Release | - # # | linux-musl-x64 | Debug | Release | - # # | OSX-x64 | Debug | Release | - # # | linux-musl-arm | Release | Release | - # # | linux-musl-arm64 | Release | Release | - # # | linux-x64 | Release | Release | - # # | windows-x64 | Release | Release | - - # # - # # Debug (PR) / Release (rolling) Libraries Test Execution against a checked runtime - # # Only when the PR contains a coreclr change - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # - linux_arm64 - # - windows_x86 - # - linux_musl_x64 - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # helixQueueGroup: libraries - # jobParameters: - # testScope: innerloop - # liveRuntimeBuildConfig: checked - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Release Libraries Test Execution against a checked runtime - # # Only if CoreCLR or Libraries is changed - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # buildConfig: Release - # platforms: - # - linux_musl_arm - # - linux_musl_arm64 - # - linux_x64 - # - windows_x64 - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # helixQueueGroup: libraries - # jobParameters: - # testScope: innerloop - # liveRuntimeBuildConfig: checked - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/run-test-job.yml - # buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - # platforms: - # - osx_x64 - # helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - # helixQueueGroup: libraries - # jobParameters: - # testScope: innerloop - # liveRuntimeBuildConfig: checked - # condition: >- - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), - # eq(variables['isRollingBuild'], true)) - - # # - # # Sourcebuild legs - # # We have 3 important legs for source-build: - # # - Centos.8 (ensures that known non-portable RID is working) - # # - Linux-x64 portable (used for dependency flow and downstream PR verification) - # # - Banana.24 - Non-existent RID to ensure we don't break RIDs we don't know about. - # # - # # Running all of these everywhere is wasteful. Run Banana.24 and CentOS.8 in rolling CI, - # # Run Linux-x64 in PR. - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # helixQueueGroup: pr - # platforms: - # - SourceBuild_centos8_x64 - # jobParameters: - # nameSuffix: centos8SourceBuild - # extraStepsParameters: - # name: SourceBuildPackages - # timeoutInMinutes: 95 - # condition: eq(variables['isRollingBuild'], true) - - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # helixQueueGroup: pr - # platforms: - # - SourceBuild_banana24_x64 - # jobParameters: - # nameSuffix: banana24SourceBuild - # extraStepsParameters: - # name: SourceBuildPackages - # timeoutInMinutes: 95 - # condition: eq(variables['isRollingBuild'], true) - - # - # Build the whole product using NativeAOT for iOS/tvOS and run runtime tests with iOS/tvOS devices + # + # Build CoreCLR checked + # Only when CoreCLR is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - linux_x86 + - linux_x64 + - linux_arm + - linux_arm64 + - linux_riscv64 + - linux_musl_arm + - linux_musl_arm64 + - linux_musl_x64 + - osx_arm64 + - tizen_armel + - windows_x86 + - windows_x64 + - windows_arm64 + jobParameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build the whole product using GNU compiler toolchain + # When CoreCLR, Mono, Libraries, Installer and src/tests are changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: checked + platforms: + - gcc_linux_x64 + jobParameters: + testGroup: innerloop + nameSuffix: Native_GCC + buildArgs: -s clr.native+libs.native+mono+host.native -c $(_BuildConfig) -gcc + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests.yml + extraStepsParameters: + testBuildArgs: skipmanaged skipgeneratelayout skiprestorepackages -gcc + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build CoreCLR osx_x64 checked + # Only when CoreCLR or Libraries is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - osx_x64 + jobParameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build CoreCLR release + # Always as they are needed by Installer and we always build and test the Installer. + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: release + platforms: + - osx_arm64 + - osx_x64 + - linux_x64 + - linux_arm + - linux_arm64 + - linux_musl_x64 + - linux_musl_arm + - linux_musl_arm64 + - windows_x64 + - windows_x86 + - windows_arm64 + - freebsd_x64 + jobParameters: + testGroup: innerloop + # Mono/runtimetests also need this, but skip for wasm + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build CoreCLR Formatting Job + # Only when CoreCLR is changed, and only in the 'main' branch (no release branches; + # both Rolling and PR builds). + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml + platforms: + - linux_x64 + - windows_x64 + jobParameters: + condition: >- + and( + or( + eq(variables['Build.SourceBranchName'], 'main'), + eq(variables['System.PullRequest.TargetBranch'], 'main')), + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_jit.containsChange'], true), + eq(variables['isRollingBuild'], true))) + + # + # CoreCLR NativeAOT debug build and smoke tests + # Only when CoreCLR is changed # - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/common/global-build-job.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Debug + platforms: + - linux_x64 + - windows_x64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + timeoutInMinutes: 120 + nameSuffix: NativeAOT + buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + extraStepsParameters: + creator: dotnet-bot + testBuildArgs: nativeaot tree nativeaot + liveLibrariesBuildConfig: Release + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) + + # + # CoreCLR NativeAOT checked build and smoke tests + # Only when CoreCLR is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Checked + platforms: + - windows_x64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + timeoutInMinutes: 120 + nameSuffix: NativeAOT + buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + extraStepsParameters: + creator: dotnet-bot + testBuildArgs: 'nativeaot tree ";nativeaot;Loader;Interop;tracing/eventpipe/config;" test tracing/eventcounter/runtimecounters.csproj /p:BuildNativeAotFrameworkObjects=true' + liveLibrariesBuildConfig: Release + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) + + # + # CoreCLR NativeAOT release build and smoke tests + # Only when CoreCLR is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + platforms: + - linux_x64 + - windows_x64 + - osx_x64 + - linux_arm64 + - windows_arm64 + - osx_arm64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + timeoutInMinutes: 120 + nameSuffix: NativeAOT + buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml + extraStepsParameters: + creator: dotnet-bot + testBuildArgs: 'nativeaot tree ";nativeaot;tracing/eventpipe/simpleprovidervalidation;"' + liveLibrariesBuildConfig: Release + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) + + # + # CoreCLR NativeAOT release build and libraries tests + # Only when CoreCLR or library is 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: coreclr - # isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - # isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + platforms: + - windows_arm64 + - linux_arm64 + - osx_arm64 + jobParameters: + testGroup: innerloop + isSingleFile: true + nameSuffix: NativeAOT_Libraries + buildArgs: -s clr.aot+host.native+libs+libs.tests -c $(_BuildConfig) /p:TestNativeAot=true /p:RunSmokeTestsOnly=true /p:ArchiveTests=true + timeoutInMinutes: 240 # Doesn't actually take long, but we've seen the ARM64 Helix queue often get backlogged for 2+ hours + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) + + # Build and test clr tools + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: checked + platforms: + - linux_x64 + jobParameters: + timeoutInMinutes: 120 + nameSuffix: CLR_Tools_Tests + buildArgs: -s clr.aot+clr.iltools+libs+clr.toolstests -c $(_BuildConfig) -test + enablePublishTestResults: true + testResultsFormat: 'xunit' + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # Build Mono AOT offset headers once, for consumption elsewhere + # Only when mono changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml + buildConfig: release + platforms: + - android_x64 + - browser_wasm + - tvos_arm64 + - ios_arm64 + - maccatalyst_x64 + jobParameters: + isOfficialBuild: ${{ variables.isOfficialBuild }} + # needed by crossaot + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # Build the whole product using Mono runtime + # Only when libraries, mono or installer are changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + runtimeFlavor: mono + platforms: + - tvossimulator_x64 + - linux_arm + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + 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_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - linux_musl_x64 + - linux_riscv64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + 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_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # WebAssembly legs + # + - template: /eng/pipelines/common/templates/wasm-library-tests.yml + parameters: + platforms: + - browser_wasm + alwaysRun: ${{ variables.isRollingBuild }} + scenarios: + - normal + - WasmTestOnBrowser + + - template: /eng/pipelines/common/templates/wasm-library-tests.yml + parameters: + platforms: + - browser_wasm_win + alwaysRun: ${{ variables.isRollingBuild }} + scenarios: + - WasmTestOnBrowser + + # EAT Library tests - only run on linux + - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + parameters: + platforms: + - browser_wasm + nameSuffix: _EAT + runAOT: false + shouldRunSmokeOnly: false + alwaysRun: ${{ variables.isRollingBuild }} + + # AOT Library tests + - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + parameters: + platforms: + - browser_wasm + nameSuffix: _AOT + runAOT: true + shouldRunSmokeOnly: true + alwaysRun: ${{ variables.isRollingBuild }} + + - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml + parameters: + platforms: + - browser_wasm_win + nameSuffix: _AOT + runAOT: true + shouldRunSmokeOnly: true + alwaysRun: ${{ variables.isRollingBuild }} + + # Wasm.Build.Tests + - template: /eng/pipelines/common/templates/wasm-build-tests.yml + parameters: + platforms: + - browser_wasm + - browser_wasm_win + alwaysRun: ${{ variables.isRollingBuild }} + + # Wasm Debugger tests + - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml + parameters: + platforms: + - browser_wasm + - browser_wasm_win + alwaysRun: ${{ variables.isRollingBuild }} + + # Wasm runtime tests + - template: /eng/pipelines/common/templates/wasm-runtime-tests.yml + parameters: + platforms: + - browser_wasm + alwaysRun: ${{ variables.isRollingBuild }} + + # Build and Smoke Tests only - Wasm Threading Legs + - template: /eng/pipelines/common/templates/wasm-library-tests.yml + parameters: + platforms: + - browser_wasm + nameSuffix: _Threading_Smoke + extraBuildArgs: /p:MonoWasmBuildVariant=multithread /p:_WasmPThreadPoolSize=8 + shouldRunSmokeOnly: true + alwaysRun: ${{ variables.isRollingBuild }} + scenarios: + - WasmTestOnBrowser + + - template: /eng/pipelines/common/templates/wasm-build-only.yml + parameters: + platforms: + - browser_wasm + nameSuffix: _Threading_PerfTracing + extraBuildArgs: /p:MonoWasmBuildVariant=perftrace + alwaysRun: ${{ variables.isRollingBuild }} + + # WASI/WASM + + - template: /eng/pipelines/common/templates/wasm-library-tests.yml + parameters: + platforms: + - wasi_wasm + - wasi_wasm_win + nameSuffix: '_Smoke' + extraBuildArgs: /p:EnableAggressiveTrimming=true /p:RunWasmSamples=true + shouldContinueOnError: true + shouldRunSmokeOnly: true + alwaysRun: ${{ variables.isRollingBuild }} + scenarios: + - normal + + - template: /eng/pipelines/common/templates/wasm-build-tests.yml + parameters: + platforms: + - wasi_wasm + - wasi_wasm_win + alwaysRun: ${{ variables.isRollingBuild }} + + # + # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size + # Build the whole product using Mono and run libraries tests + # + - 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: - ios_arm64 - # - tvos_arm64 + - tvos_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: AllSubsets_Mono + buildArgs: -s mono+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true + timeoutInMinutes: 180 + 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_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true + condition: >- + or( + eq(variables['librariesContainsChange'], true), + eq(variables['monoContainsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # MacCatalyst interp - requires AOT Compilation and Interp flags + # Build the whole product using Mono and run libraries tests + # + # + # Disabled pending queue backup investigation + # + #- 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: + # - maccatalyst_x64 + # - ${{ if eq(variables['isRollingBuild'], true) }}: + # - maccatalyst_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: AllSubsets_Mono + # buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildDarwinFrameworks=true + # timeoutInMinutes: 180 + # 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_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)) + + # + # Build Mono and Installer on LLVMJIT mode + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMJIT + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + 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_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + runtimeFlavor: mono + platforms: + - linux_x64 + - linux_arm64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMJIT + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + 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_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build Mono and Installer on LLVMAOT mode + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - linux_x64 + - linux_arm64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMAOT + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true + 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_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMAOT + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true + 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_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build Mono debug + # Only when mono changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: debug + platforms: + - osx_x64 + - osx_arm64 + - linux_x64 + - linux_arm64 + # - linux_musl_arm64 + - windows_x64 + - windows_x86 + # - windows_arm64 + jobParameters: + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build Mono release AOT cross-compilers + # Only when mono changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_x64 + # - linux_arm64 + # - linux_musl_arm64 + - windows_x64 + # - windows_x86 + # - windows_arm64 + jobParameters: + runtimeVariant: crossaot + dependsOn: + - mono_android_offsets + - mono_browser_offsets + monoCrossAOTTargetOS: + - android + - browser + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - osx_x64 + jobParameters: + runtimeVariant: crossaot + dependsOn: + - mono_android_offsets + - mono_browser_offsets + - mono_tvos_offsets + - mono_ios_offsets + - mono_maccatalyst_offsets + monoCrossAOTTargetOS: + - android + - browser + - tvos + - ios + - maccatalyst + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_arm64 + - osx_arm64 + jobParameters: + runtimeVariant: crossaot + dependsOn: + - mono_browser_offsets + monoCrossAOTTargetOS: + - browser + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build Mono release + # Only when libraries or mono changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_x64 + # - linux_musl_arm64 + - windows_x64 + - windows_x86 + # - windows_arm64 + jobParameters: + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build Mono release + # Only when libraries, mono, or the runtime tests changed + # Currently only these architectures are needed for the runtime tests. + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - osx_x64 + - linux_arm64 + jobParameters: + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build Mono release with LLVM AOT + # Only when mono, or the runtime tests changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_x64 + - linux_arm64 + jobParameters: + runtimeVariant: llvmaot + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build libraries using live CoreLib + # These set of libraries are built always no matter what changed + # The reason for that is because Corelib and Installer needs it and + # These are part of the test matrix for Libraries changes. + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - linux_arm + - linux_musl_arm + - linux_musl_arm64 + - windows_arm64 + - windows_x86 + jobParameters: + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - linux_arm64 + - linux_musl_x64 + - linux_x64 + - osx_arm64 + - osx_x64 + - windows_x64 + - freebsd_x64 + jobParameters: + testScope: innerloop + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Libraries debug build that only runs when coreclr is changed + # Only do this on PR builds since we use the Release builds for these test runs in CI + # and those are already built above + # + - ${{ if eq(variables['isRollingBuild'], false) }}: + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Debug + platforms: + - windows_x86 + jobParameters: + condition: >- + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) + + # + # Libraries release build that only runs when coreclr is changed in PRs + # We need these for checked coreclr + release libraries tests runs. + # + - ${{ if eq(variables['isRollingBuild'], false) }}: + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - linux_x64 + - windows_x64 + jobParameters: + condition: >- + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - windows_x86 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + framework: net48 + runTests: true + testScope: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - windows_x64 + jobParameters: + framework: allConfigurations + runTests: true + useHelix: false + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Installer Build and Test + # These are always built since they only take like 15 minutes + # we expect these to be done before we finish libraries or coreclr testing. + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/installer/jobs/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - linux_musl_arm + - linux_musl_arm64 + - windows_x86 + - windows_arm64 + - linux_arm + jobParameters: + liveRuntimeBuildConfig: release + liveLibrariesBuildConfig: Release + runOnlyIfDependenciesSucceeded: true + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/installer/jobs/build-job.yml + buildConfig: Release + platforms: + - osx_arm64 + - osx_x64 + - linux_x64 + - linux_arm64 + - linux_musl_x64 + - windows_x64 + - freebsd_x64 + jobParameters: + liveRuntimeBuildConfig: release + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + runOnlyIfDependenciesSucceeded: true + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # CoreCLR Test builds using live libraries release build + # Only when CoreCLR is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + buildConfig: checked + platforms: + - CoreClrTestBuildHost # Either osx_x64 or linux_x64 + jobParameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # CoreCLR Test executions using live libraries + # Only when CoreCLR is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: checked + platforms: + - linux_arm + - windows_x86 + - windows_arm64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: Release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: checked + platforms: + - osx_x64 + - linux_x64 + - linux_arm64 + - windows_x64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: checked + platforms: + - osx_arm64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr_AppleSilicon.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Mono Test builds with CoreCLR runtime tests using live libraries debug build + # Only when Mono is changed + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - CoreClrTestBuildHost # Either osx_x64 or linux_x64 + jobParameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - windows_x64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + liveRuntimeBuildConfig: release + runtimeVariant: minijit + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Build the whole product using Mono and run runtime tests + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - osx_x64 + - linux_arm64 variables: - name: timeoutPerTestInMinutes value: 60 @@ -1475,16 +1154,302 @@ extends: value: 180 jobParameters: testGroup: innerloop - nameSuffix: AllSubsets_NativeAOT_RuntimeTests - timeoutInMinutes: 240 - buildArgs: -s clr.aot+libs -c $(_BuildConfig) -rc $(_BuildConfig) - # extra steps, run tests + nameSuffix: AllSubsets_Mono_Minijit_RuntimeTests + runtimeVariant: minijit + buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_Release extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop + + # + # Mono CoreCLR runtime Test executions using live libraries in interpreter mode + # Only when Mono is changed + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - osx_x64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_Interpreter_RuntimeTests + runtimeVariant: monointerpreter + buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release + timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_Release + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # + # Mono CoreCLR runtime Test executions using live libraries and LLVM AOT + # Only when Mono is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - linux_x64 + # Disabled pending outcome of https://github.com/dotnet/runtime/issues/60234 investigation + #- linux_arm64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMAot_RuntimeTests + runtimeVariant: llvmaot + buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true /p:MonoLLVMUseCxx11Abi=true + timeoutInMinutes: 180 + + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isRollingBuild'], true)) extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml extraStepsParameters: creator: dotnet-bot - testBuildArgs: tree nativeaot/SmokeTests/UnitTests - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) \ No newline at end of file + llvmAotStepContainer: linux_x64_llvmaot + testRunNamePrefixSuffix: Mono_Release + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + + # + # Libraries Release Test Execution against a release mono runtime. + # Only when libraries or mono changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + runtimeFlavor: mono + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + # - windows_x64 + - osx_x64 + - linux_arm64 + - linux_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + runtimeDisplayName: mono + testScope: innerloop + liveRuntimeBuildConfig: release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Libraries Release Test Execution against a release mono interpreter runtime. + # Only when libraries or mono changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + runtimeFlavor: mono + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + # - windows_x64 + #- osx_x64 + - linux_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + interpreter: true + runtimeDisplayName: mono_interpreter + testScope: innerloop + liveRuntimeBuildConfig: release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Libraries Release Test Execution against a release coreclr runtime + # Only when the PR contains a libraries change + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: Release + platforms: + - windows_x86 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + testScope: innerloop + liveRuntimeBuildConfig: release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Libraries Debug Test Execution against a release coreclr runtime + # Only when the PR contains a libraries change + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - windows_x64 + - osx_x64 + - linux_x64 + - linux_musl_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + testScope: innerloop + liveRuntimeBuildConfig: release + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # The next three jobs run checked coreclr + libraries tests. + # The matrix looks like the following, where the right columns specify which configurations + # the libraries tests are built in. + # ________________________________________ + # | Platform | PR | Rolling | + # | ---------------- | ------- | ------- | + # | linux-arm64 | Debug | Release | + # | windows-x86 | Debug | Release | + # | linux-musl-x64 | Debug | Release | + # | OSX-x64 | Debug | Release | + # | linux-musl-arm | Release | Release | + # | linux-musl-arm64 | Release | Release | + # | linux-x64 | Release | Release | + # | windows-x64 | Release | Release | + + # + # Debug (PR) / Release (rolling) Libraries Test Execution against a checked runtime + # Only when the PR contains a coreclr change + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - linux_arm64 + - windows_x86 + - linux_musl_x64 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries + jobParameters: + testScope: innerloop + liveRuntimeBuildConfig: checked + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Release Libraries Test Execution against a checked runtime + # Only if CoreCLR or Libraries is changed + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: Release + platforms: + - linux_musl_arm + - linux_musl_arm64 + - linux_x64 + - windows_x64 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries + jobParameters: + testScope: innerloop + liveRuntimeBuildConfig: checked + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - osx_x64 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries + jobParameters: + testScope: innerloop + liveRuntimeBuildConfig: checked + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isRollingBuild'], true)) + + # + # Sourcebuild legs + # We have 3 important legs for source-build: + # - Centos.8 (ensures that known non-portable RID is working) + # - Linux-x64 portable (used for dependency flow and downstream PR verification) + # - Banana.24 - Non-existent RID to ensure we don't break RIDs we don't know about. + # + # Running all of these everywhere is wasteful. Run Banana.24 and CentOS.8 in rolling CI, + # Run Linux-x64 in PR. + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + helixQueueGroup: pr + platforms: + - SourceBuild_centos8_x64 + jobParameters: + nameSuffix: centos8SourceBuild + extraStepsParameters: + name: SourceBuildPackages + timeoutInMinutes: 95 + condition: eq(variables['isRollingBuild'], true) + + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + helixQueueGroup: pr + platforms: + - SourceBuild_banana24_x64 + jobParameters: + nameSuffix: banana24SourceBuild + extraStepsParameters: + name: SourceBuildPackages + timeoutInMinutes: 95 + condition: eq(variables['isRollingBuild'], true) diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs index 1b48b284dd42d3..d0981653585a58 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs @@ -50,8 +50,10 @@ public static int Run() Console.WriteLine("Failed"); result = Fail; } - +// Dynamic code generation not supported +#if !TARGET_IOS && !TARGET_TVOS && !TARGET_MACCATALYST // TestLinqExpressions.Run(); +#endif TestDefaultInterfaceMethods.Run(); return result; diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs index dee6e112ec9d9d..80d0c13f6b9132 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs @@ -53,7 +53,10 @@ internal static int Run() TestNullableCasting.Run(); TestVariantCasting.Run(); TestMDArrayAddressMethod.Run(); +// SIGSEGV handler missing: https://github.com/dotnet/runtime/issues/87458 +#if !TARGET_IOS && !TARGET_TVOS && !TARGET_MACCATALYST // TestNativeLayoutGeneration.Run(); +#endif TestByRefLikeVTables.Run(); TestFunctionPointerLoading.Run(); diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs index 85e62ab572adbc..e41aea8c0d156b 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs @@ -17,8 +17,11 @@ public static int Run() if (TestInterfaceCache() == Fail) return Fail; +// SIGSEGV handler missing: https://github.com/dotnet/runtime/issues/87458 +#if !TARGET_IOS && !TARGET_TVOS && !TARGET_MACCATALYST // if (TestAVInInterfaceCache() == Fail) // return Fail; +#endif if (TestMultipleInterfaces() == Fail) return Fail; diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs index 39c4b04cbd4aff..58c071a24be7bc 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs @@ -62,8 +62,11 @@ public static int Run() Console.WriteLine(" ThreadPoolTests.WorkQueueDepletionTest"); ThreadPoolTests.WorkQueueDepletionTest(); +// Globalization not supported +#if !TARGET_IOS && !TARGET_TVOS && !TARGET_MACCATALYST // Console.WriteLine(" ThreadPoolTests.WorkerThreadStateReset"); // ThreadPoolTests.WorkerThreadStateReset(); +#endif // This test is not applicable (and will not pass) on Windows since it uses the Windows OS-provided thread pool. // Console.WriteLine(" ThreadPoolTests.SettingMinThreadsWillCreateThreadsUpToMinimum"); From 8b96b80c450713db5dcaac6835632c3f114d7ee8 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 13 Jun 2023 15:24:24 +0200 Subject: [PATCH 062/109] Revert disabled tests --- eng/pipelines/global-build.yml | 262 ++++++++++++++++----------------- 1 file changed, 131 insertions(+), 131 deletions(-) diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml index 831b7e0871b7c5..6f80e6ad104525 100644 --- a/eng/pipelines/global-build.yml +++ b/eng/pipelines/global-build.yml @@ -40,140 +40,140 @@ extends: - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - template: /eng/pipelines/common/evaluate-default-paths.yml - # # - # # Build with Release config and Debug runtimeConfiguration - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # platforms: - # - windows_x86 - # - osx_x64 - # - osx_arm64 - # jobParameters: - # testGroup: innerloop - # nameSuffix: Runtime_Debug - # buildArgs: -c release -runtimeConfiguration debug - # timeoutInMinutes: 120 - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) + # + # Build with Release config and Debug runtimeConfiguration + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + platforms: + - windows_x86 + - osx_x64 + - osx_arm64 + jobParameters: + testGroup: innerloop + nameSuffix: Runtime_Debug + buildArgs: -c release -runtimeConfiguration debug + timeoutInMinutes: 120 + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) - # # - # # Build with Release config and runtimeConfiguration with MSBuild generator - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # platforms: - # - windows_x86 - # jobParameters: - # testGroup: innerloop - # nameSuffix: MSBuild_CMake - # buildArgs: -c Release -msbuild - # timeoutInMinutes: 120 - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) + # + # Build with Release config and runtimeConfiguration with MSBuild generator + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + platforms: + - windows_x86 + jobParameters: + testGroup: innerloop + nameSuffix: MSBuild_CMake + buildArgs: -c Release -msbuild + timeoutInMinutes: 120 + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) - # # - # # Build with Debug config and Release runtimeConfiguration - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: debug - # platforms: - # - linux_x64_dev_innerloop - # jobParameters: - # testGroup: innerloop - # nameSuffix: Runtime_Release - # buildArgs: -c debug -runtimeConfiguration release - # timeoutInMinutes: 120 - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) + # + # Build with Debug config and Release runtimeConfiguration + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: debug + platforms: + - linux_x64_dev_innerloop + jobParameters: + testGroup: innerloop + nameSuffix: Runtime_Release + buildArgs: -c debug -runtimeConfiguration release + timeoutInMinutes: 120 + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) - # # - # # Build with RuntimeFlavor only. This exercise code paths where only RuntimeFlavor is - # # specified. Catches cases where we depend on Configuration also being specified - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: debug - # platforms: - # - linux_x64_dev_innerloop - # jobParameters: - # testGroup: innerloop - # nameSuffix: RuntimeFlavor_Mono - # buildArgs: /p:RuntimeFlavor=Mono - # timeoutInMinutes: 120 - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) + # + # Build with RuntimeFlavor only. This exercise code paths where only RuntimeFlavor is + # specified. Catches cases where we depend on Configuration also being specified + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: debug + platforms: + - linux_x64_dev_innerloop + jobParameters: + testGroup: innerloop + nameSuffix: RuntimeFlavor_Mono + buildArgs: /p:RuntimeFlavor=Mono + timeoutInMinutes: 120 + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_non_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) - # # - # # Build Mono + Libraries. This exercises the code path where we build libraries without - # # first building CoreCLR - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: debug - # platforms: - # - windows_x64 - # jobParameters: - # testGroup: innerloop - # nameSuffix: Mono_Libraries - # buildArgs: -subset mono+libs /p:RuntimeFlavor=Mono - # timeoutInMinutes: 120 - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) + # + # Build Mono + Libraries. This exercises the code path where we build libraries without + # first building CoreCLR + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: debug + platforms: + - windows_x64 + jobParameters: + testGroup: innerloop + nameSuffix: Mono_Libraries + buildArgs: -subset mono+libs /p:RuntimeFlavor=Mono + timeoutInMinutes: 120 + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_non_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) - # # - # # Build Libraries AllConfigurations. This exercises the code path where we build libraries for all - # # configurations on a non Windows operating system. - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: debug - # platforms: - # - linux_x64_dev_innerloop - # jobParameters: - # nameSuffix: Libraries_AllConfigurations - # buildArgs: -subset libs -allconfigurations - # timeoutInMinutes: 120 - # condition: - # or( - # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), - # eq(variables['isRollingBuild'], true)) + # + # Build Libraries AllConfigurations. This exercises the code path where we build libraries for all + # configurations on a non Windows operating system. + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: debug + platforms: + - linux_x64_dev_innerloop + jobParameters: + nameSuffix: Libraries_AllConfigurations + buildArgs: -subset libs -allconfigurations + timeoutInMinutes: 120 + condition: + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), + eq(variables['isRollingBuild'], true)) - # # - # # SourceBuild Build - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # platforms: - # - SourceBuild_linux_x64 - # jobParameters: - # nameSuffix: PortableSourceBuild - # extraStepsParameters: - # name: SourceBuildPackages - # timeoutInMinutes: 95 - # condition: - # eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true) + # + # SourceBuild Build + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + platforms: + - SourceBuild_linux_x64 + jobParameters: + nameSuffix: PortableSourceBuild + extraStepsParameters: + name: SourceBuildPackages + timeoutInMinutes: 95 + condition: + eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true) From 8556872b471a9db90b47e84d4a148df0315bd20c Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 13 Jun 2023 15:26:53 +0200 Subject: [PATCH 063/109] Revert disabled tests --- eng/pipelines/runtime.yml | 18 +++++++++++++----- src/mono/sample/iOS-NativeAOT/Makefile | 2 +- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 9fe2862edc9e83..7d7e644bf73bb4 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -248,7 +248,7 @@ extends: extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml extraStepsParameters: creator: dotnet-bot - testBuildArgs: 'nativeaot tree ";nativeaot;Loader;Interop;tracing/eventpipe/config;" test tracing/eventcounter/runtimecounters.csproj /p:BuildNativeAotFrameworkObjects=true' + testBuildArgs: 'nativeaot tree ";nativeaot;Loader;Interop;tracing/eventpipe/config;tracing/eventpipe/diagnosticport;tracing/eventpipe/reverse;" test tracing/eventcounter/runtimecounters.csproj /p:BuildNativeAotFrameworkObjects=true' liveLibrariesBuildConfig: Release testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) extraVariablesTemplates: @@ -422,6 +422,7 @@ extends: platforms: - browser_wasm alwaysRun: ${{ variables.isRollingBuild }} + extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) scenarios: - normal - WasmTestOnBrowser @@ -431,6 +432,7 @@ extends: platforms: - browser_wasm_win alwaysRun: ${{ variables.isRollingBuild }} + extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) scenarios: - WasmTestOnBrowser @@ -443,6 +445,7 @@ extends: runAOT: false shouldRunSmokeOnly: false alwaysRun: ${{ variables.isRollingBuild }} + extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) # AOT Library tests - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml @@ -453,6 +456,7 @@ extends: runAOT: true shouldRunSmokeOnly: true alwaysRun: ${{ variables.isRollingBuild }} + extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml parameters: @@ -470,6 +474,7 @@ extends: - browser_wasm - browser_wasm_win alwaysRun: ${{ variables.isRollingBuild }} + extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) # Wasm Debugger tests - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml @@ -478,6 +483,7 @@ extends: - browser_wasm - browser_wasm_win alwaysRun: ${{ variables.isRollingBuild }} + extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) # Wasm runtime tests - template: /eng/pipelines/common/templates/wasm-runtime-tests.yml @@ -485,6 +491,7 @@ extends: platforms: - browser_wasm alwaysRun: ${{ variables.isRollingBuild }} + extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) # Build and Smoke Tests only - Wasm Threading Legs - template: /eng/pipelines/common/templates/wasm-library-tests.yml @@ -492,7 +499,7 @@ extends: platforms: - browser_wasm nameSuffix: _Threading_Smoke - extraBuildArgs: /p:MonoWasmBuildVariant=multithread /p:_WasmPThreadPoolSize=8 + extraBuildArgs: /p:MonoWasmBuildVariant=multithread /p:_WasmPThreadPoolSize=8 /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) shouldRunSmokeOnly: true alwaysRun: ${{ variables.isRollingBuild }} scenarios: @@ -503,7 +510,7 @@ extends: platforms: - browser_wasm nameSuffix: _Threading_PerfTracing - extraBuildArgs: /p:MonoWasmBuildVariant=perftrace + extraBuildArgs: /p:MonoWasmBuildVariant=perftrace /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) alwaysRun: ${{ variables.isRollingBuild }} # WASI/WASM @@ -514,7 +521,7 @@ extends: - wasi_wasm - wasi_wasm_win nameSuffix: '_Smoke' - extraBuildArgs: /p:EnableAggressiveTrimming=true /p:RunWasmSamples=true + extraBuildArgs: /p:EnableAggressiveTrimming=true /p:RunWasmSamples=true /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) shouldContinueOnError: true shouldRunSmokeOnly: true alwaysRun: ${{ variables.isRollingBuild }} @@ -526,6 +533,7 @@ extends: platforms: - wasi_wasm - wasi_wasm_win + extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) alwaysRun: ${{ variables.isRollingBuild }} # @@ -1452,4 +1460,4 @@ extends: extraStepsParameters: name: SourceBuildPackages timeoutInMinutes: 95 - condition: eq(variables['isRollingBuild'], true) + condition: eq(variables['isRollingBuild'], true) \ No newline at end of file diff --git a/src/mono/sample/iOS-NativeAOT/Makefile b/src/mono/sample/iOS-NativeAOT/Makefile index dd796aa3cc93c2..2ef3ea826d5d52 100644 --- a/src/mono/sample/iOS-NativeAOT/Makefile +++ b/src/mono/sample/iOS-NativeAOT/Makefile @@ -4,7 +4,7 @@ TOP=../../../../ BUILD_CONFIG?=Debug TARGET_ARCH?=$(shell . $(TOP)eng/native/init-os-and-arch.sh && echo $${arch}) -TARGET_OS?=ios +TARGET_OS?=iossimulator DEPLOY_AND_RUN?=false STRIP_DEBUG_SYMBOLS?=false USE_RUNTIME_PACKS?=false From 0903a066944b35ebd1dd99b4d85f02af79af8e41 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 13 Jun 2023 15:28:16 +0200 Subject: [PATCH 064/109] Revert disabled tests --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 7d7e644bf73bb4..52c5547c47b4b2 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1460,4 +1460,4 @@ extends: extraStepsParameters: name: SourceBuildPackages timeoutInMinutes: 95 - condition: eq(variables['isRollingBuild'], true) \ No newline at end of file + condition: eq(variables['isRollingBuild'], true) From 333bc372de8c6e214289e2cc033d18e13b86ca88 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 13 Jun 2023 15:29:47 +0200 Subject: [PATCH 065/109] Revert disabled tests --- .../extra-platforms/runtime-extra-platforms-ioslike.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 0e5b9afa4bd77e..14f5da97e732e0 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -123,4 +123,4 @@ jobs: extraStepsParameters: creator: dotnet-bot testBuildArgs: tree nativeaot/SmokeTests/UnitTests - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) \ No newline at end of file + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) From b265b14f0fe46ef9cea8dded4a4c7de94c29e1ab Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 13 Jun 2023 15:37:09 +0200 Subject: [PATCH 066/109] Fix ioslike conditions --- .../extra-platforms/runtime-extra-platforms-ioslike.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 14f5da97e732e0..158a1f8d20f315 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -12,7 +12,7 @@ parameters: jobs: -- ${{ if eq(parameters.isCoreclrOnlyBuild, false)) }}: +- ${{ if eq(parameters.isCoreclrOnlyBuild, false) }}: # # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size # Build the whole product using Mono and run libraries tests @@ -89,7 +89,7 @@ jobs: testBuildArgs: tree tracing/eventpipe testRunNamePrefixSuffix: Mono_$(_BuildConfig) -- ${{ if eq(parameters.isMonoOnlyBuild, false)) }}: +- ${{ if eq(parameters.isMonoOnlyBuild, false) }}: # # Build the whole product using NativeAOT for iOS/tvOS and run runtime tests with iOS/tvOS devices # From fe4c03fc880f92fa9625650887a88bac44e987b4 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 13 Jun 2023 15:57:46 +0200 Subject: [PATCH 067/109] Use isHostBuild for coreclr runs only --- eng/pipelines/common/platform-matrix.yml | 56 ++++++++++++++---------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index e522cb070fd026..4c186e481ac47f 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -674,9 +674,10 @@ jobs: platform: maccatalyst_x64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - hostedOs: osx - hostedArch: x64 - isHostBuild: true + ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: + hostedOs: osx + hostedArch: x64 + isHostBuild: true ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -699,9 +700,10 @@ jobs: platform: maccatalyst_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - hostedOs: osx - hostedArch: x64 - isHostBuild: true + ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: + hostedOs: osx + hostedArch: x64 + isHostBuild: true ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -724,9 +726,10 @@ jobs: platform: tvos_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - hostedOs: osx - hostedArch: x64 - isHostBuild: true + ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: + hostedOs: osx + hostedArch: x64 + isHostBuild: true ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -749,9 +752,10 @@ jobs: platform: tvossimulator_x64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - hostedOs: osx - hostedArch: x64 - isHostBuild: true + ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: + hostedOs: osx + hostedArch: x64 + isHostBuild: true ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -774,9 +778,10 @@ jobs: platform: tvossimulator_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - hostedOs: osx - hostedArch: x64 - isHostBuild: true + ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: + hostedOs: osx + hostedArch: x64 + isHostBuild: true ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -799,9 +804,10 @@ jobs: platform: ios_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - hostedOs: osx - hostedArch: x64 - isHostBuild: true + ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: + hostedOs: osx + hostedArch: x64 + isHostBuild: true ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -824,9 +830,10 @@ jobs: platform: iossimulator_x64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - hostedOs: osx - hostedArch: x64 - isHostBuild: true + ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: + hostedOs: osx + hostedArch: x64 + isHostBuild: true ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -849,9 +856,10 @@ jobs: platform: iossimulator_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - hostedOs: osx - hostedArch: x64 - isHostBuild: true + ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: + hostedOs: osx + hostedArch: x64 + isHostBuild: true ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: From e8acfd12eb64efb14c2acdf3cc3f7a091fc03ecc Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 13 Jun 2023 16:37:22 +0200 Subject: [PATCH 068/109] Use BuildMonoiOSApp target name --- src/tests/build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index d3cd66ead6f2e8..0322eed6e48777 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -271,7 +271,7 @@ - + $([System.IO.Path]::GetDirectoryName($([System.IO.Path]::GetDirectoryName($(_CMDDIR))))) $([System.String]::Copy('$(_CMDDIR)').Replace("$(CMDDIR_Grandparent)/","")) From 840c47233d45634a7d7c1b51d7afc23993c3bc40 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 13 Jun 2023 17:54:22 +0200 Subject: [PATCH 069/109] Test Native AOT on iossimulator --- ...ntime-extra-platforms-ioslikesimulator.yml | 42 +++++++++++++++++++ src/mono/sample/mbr/apple/main.m | 4 +- src/tests/build.proj | 2 +- 3 files changed, 45 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 308fbd384e9432..47d3bba939c448 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -88,3 +88,45 @@ jobs: # FIXME: Currently, tracing/eventpipe tests are only enabled on iOS platforms. It should be expanded to include all runtime tests. Tracking issue: https://github.com/dotnet/runtime/issues/84254 testBuildArgs: tree tracing/eventpipe testRunNamePrefixSuffix: Mono_$(_BuildConfig) + +# +# Build the whole product using Native AOT for iOSSimulator/tvOSSimulator and run runtime tests with iOS/tvOS simulators +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: coreclr + isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + platforms: + - iossimulator_x64 + - tvossimulator_x64 + - iossimulator_arm64 + variables: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: pr/dotnet/runtime/$(Build.SourceBranch) + - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: ci/dotnet/runtime/$(Build.SourceBranch) + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_NativeAOT_RuntimeTests + timeoutInMinutes: 240 + buildArgs: -s clr.aot+libs -c $(_BuildConfig) -rc $(_BuildConfig) + # extra steps, run tests + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: innerloop + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testBuildArgs: tree nativeaot/SmokeTests/UnitTests + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) diff --git a/src/mono/sample/mbr/apple/main.m b/src/mono/sample/mbr/apple/main.m index 05089ef5cd4970..6915c8099a6fad 100644 --- a/src/mono/sample/mbr/apple/main.m +++ b/src/mono/sample/mbr/apple/main.m @@ -45,14 +45,14 @@ - (void)viewDidLoad { [button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; [button setFrame:CGRectMake(50, 250, 200, 50)]; [button setTitle:@"Click me (wire me up)" forState:UIControlStateNormal]; - [button setExclusiveTouch:YES]; + // [button setExclusiveTouch:YES]; [self.view addSubview:button]; UIButton *apply_button = [UIButton buttonWithType:UIButtonTypeInfoDark]; [apply_button addTarget:self action:@selector(applyUpdateButtonClicked:) forControlEvents:UIControlEventTouchUpInside]; [apply_button setFrame:CGRectMake(50, 300, 200, 50)]; [apply_button setTitle:@"ApplyUpdate" forState:UIControlStateNormal]; - [apply_button setExclusiveTouch:YES]; + // [apply_button setExclusiveTouch:YES]; [self.view addSubview:apply_button]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ diff --git a/src/tests/build.proj b/src/tests/build.proj index 0322eed6e48777..9518255b8da4ce 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -59,7 +59,7 @@ - + From b271f852a4378ead09dd66de112a742689f5a925 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 14 Jun 2023 11:51:39 +0200 Subject: [PATCH 070/109] Revert main.m template changes --- src/mono/sample/mbr/apple/main.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mono/sample/mbr/apple/main.m b/src/mono/sample/mbr/apple/main.m index 6915c8099a6fad..05089ef5cd4970 100644 --- a/src/mono/sample/mbr/apple/main.m +++ b/src/mono/sample/mbr/apple/main.m @@ -45,14 +45,14 @@ - (void)viewDidLoad { [button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; [button setFrame:CGRectMake(50, 250, 200, 50)]; [button setTitle:@"Click me (wire me up)" forState:UIControlStateNormal]; - // [button setExclusiveTouch:YES]; + [button setExclusiveTouch:YES]; [self.view addSubview:button]; UIButton *apply_button = [UIButton buttonWithType:UIButtonTypeInfoDark]; [apply_button addTarget:self action:@selector(applyUpdateButtonClicked:) forControlEvents:UIControlEventTouchUpInside]; [apply_button setFrame:CGRectMake(50, 300, 200, 50)]; [apply_button setTitle:@"ApplyUpdate" forState:UIControlStateNormal]; - // [apply_button setExclusiveTouch:YES]; + [apply_button setExclusiveTouch:YES]; [self.view addSubview:apply_button]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ From 1ed6c46bf3c805bbb7ac4f0e0c22cfc5b50881d7 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 14 Jun 2023 11:53:51 +0200 Subject: [PATCH 071/109] Update LegacyRunnableTestPaths to include tests on apple platforms --- src/tests/build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index 9518255b8da4ce..0acc1f6dc8c989 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -59,7 +59,7 @@ - + From 1bb3807ae0fdc7ad9b7296b407be1b31c63600bf Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 14 Jun 2023 17:24:54 +0200 Subject: [PATCH 072/109] Update the app template to work on tvos --- src/tasks/AppleAppBuilder/Templates/main-simple.m | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/tasks/AppleAppBuilder/Templates/main-simple.m b/src/tasks/AppleAppBuilder/Templates/main-simple.m index f34d4c960fac97..5e9283966ba188 100644 --- a/src/tasks/AppleAppBuilder/Templates/main-simple.m +++ b/src/tasks/AppleAppBuilder/Templates/main-simple.m @@ -48,7 +48,9 @@ - (void)viewDidLoad { [button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; [button setFrame:CGRectMake(50, 300, 200, 50)]; [button setTitle:@"Click me (wire me up)" forState:UIControlStateNormal]; +#if !USE_NATIVE_AOT [button setExclusiveTouch:YES]; +#endif [self.view addSubview:button]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ From 6c8058205a1ff489a079761380923dc04d86287d Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 15 Jun 2023 12:16:38 +0200 Subject: [PATCH 073/109] Fix tvOS build and add maccatalyst jobs --- .../runtime-extra-platforms-maccatalyst.yml | 41 +++++++++++++++++++ .../Microsoft.NETCore.Native.Unix.targets | 8 ++++ src/tests/Common/Directory.Build.targets | 1 + src/tests/Directory.Build.props | 2 +- 4 files changed, 51 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml index 736bf0516dfdf2..a54487b017e743 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml @@ -75,3 +75,44 @@ jobs: creator: dotnet-bot interpreter: true testRunNamePrefixSuffix: Mono_$(_BuildConfig) + +# +# Build the whole product using Native AOT for maccatalyst and run runtime tests +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: coreclr + isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + platforms: + - maccatalyst_x64 + - maccatalyst_arm64 + variables: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: pr/dotnet/runtime/$(Build.SourceBranch) + - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: ci/dotnet/runtime/$(Build.SourceBranch) + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_NativeAOT_RuntimeTests + timeoutInMinutes: 240 + buildArgs: -s clr.aot+libs -c $(_BuildConfig) -rc $(_BuildConfig) + # extra steps, run tests + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: innerloop + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testBuildArgs: tree nativeaot/SmokeTests/UnitTests + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) diff --git a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets index 2412bd4b7947a4..78bc6627754696 100644 --- a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets +++ b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets @@ -153,6 +153,14 @@ The .NET Foundation licenses this file to you under the MIT license. + + + + + + + + diff --git a/src/tests/Common/Directory.Build.targets b/src/tests/Common/Directory.Build.targets index fd1d1af2c512ee..af4d2179f1dadf 100644 --- a/src/tests/Common/Directory.Build.targets +++ b/src/tests/Common/Directory.Build.targets @@ -23,6 +23,7 @@ + diff --git a/src/tests/Directory.Build.props b/src/tests/Directory.Build.props index 427fb95e0b4203..bf5a79f1c00e06 100644 --- a/src/tests/Directory.Build.props +++ b/src/tests/Directory.Build.props @@ -81,7 +81,7 @@ true false - true + true false true From 2af77651ceed9e500b439ae6c1dae583cd74b49c Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 15 Jun 2023 14:55:31 +0200 Subject: [PATCH 074/109] Fix maccatalyst build --- src/tests/Common/Directory.Build.targets | 1 - 1 file changed, 1 deletion(-) diff --git a/src/tests/Common/Directory.Build.targets b/src/tests/Common/Directory.Build.targets index af4d2179f1dadf..fd1d1af2c512ee 100644 --- a/src/tests/Common/Directory.Build.targets +++ b/src/tests/Common/Directory.Build.targets @@ -23,7 +23,6 @@ - From 2c62b496762757a35d1bff259a9d3bdebc183d31 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 15 Jun 2023 19:26:50 +0200 Subject: [PATCH 075/109] Remove redundant props --- eng/pipelines/common/global-build-job.yml | 3 +- eng/pipelines/common/platform-matrix.yml | 8 -- .../runtime-extra-platforms-maccatalyst.yml | 80 +++++++++---------- .../Microsoft.NETCore.Native.Unix.targets | 8 -- src/tests/build.proj | 9 ++- .../SmokeTests/UnitTests/Delegates.cs | 2 +- .../SmokeTests/UnitTests/Generics.cs | 4 +- .../SmokeTests/UnitTests/Interfaces.cs | 6 +- .../SmokeTests/UnitTests/Threading.cs | 4 +- 9 files changed, 54 insertions(+), 70 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index da697ba48d5da3..6aa9abe6a79f3f 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -5,7 +5,6 @@ parameters: archType: '' hostedOs: '' hostedArch: '' - isHostBuild: false osGroup: '' osSubgroup: '' container: '' @@ -74,7 +73,7 @@ jobs: value: -os ${{ parameters.osGroup }} - name: _archParameter value: -arch ${{ parameters.archType }} - - ${{ if eq(parameters.isHostBuild, true) }}: + - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'iossimulator', 'tvos', 'tvossimulator', 'maccatalyst')) }}: - name: _osParameter value: -os ${{ parameters.hostedOs }} - name: _archParameter diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index 4c186e481ac47f..c783bb2ffbf496 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -677,7 +677,6 @@ jobs: ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: hostedOs: osx hostedArch: x64 - isHostBuild: true ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -703,7 +702,6 @@ jobs: ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: hostedOs: osx hostedArch: x64 - isHostBuild: true ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -729,7 +727,6 @@ jobs: ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: hostedOs: osx hostedArch: x64 - isHostBuild: true ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -755,7 +752,6 @@ jobs: ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: hostedOs: osx hostedArch: x64 - isHostBuild: true ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -781,7 +777,6 @@ jobs: ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: hostedOs: osx hostedArch: x64 - isHostBuild: true ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -807,7 +802,6 @@ jobs: ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: hostedOs: osx hostedArch: x64 - isHostBuild: true ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -833,7 +827,6 @@ jobs: ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: hostedOs: osx hostedArch: x64 - isHostBuild: true ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -859,7 +852,6 @@ jobs: ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: hostedOs: osx hostedArch: x64 - isHostBuild: true ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml index a54487b017e743..aae51cf90a2259 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml @@ -76,43 +76,43 @@ jobs: interpreter: true testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# -# Build the whole product using Native AOT for maccatalyst and run runtime tests -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: coreclr - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} - platforms: - - maccatalyst_x64 - - maccatalyst_arm64 - variables: - - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: pr/dotnet/runtime/$(Build.SourceBranch) - - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: ci/dotnet/runtime/$(Build.SourceBranch) - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_NativeAOT_RuntimeTests - timeoutInMinutes: 240 - buildArgs: -s clr.aot+libs -c $(_BuildConfig) -rc $(_BuildConfig) - # extra steps, run tests - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testBuildArgs: tree nativeaot/SmokeTests/UnitTests - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) +# # +# # Build the whole product using Native AOT for maccatalyst and run runtime tests +# # +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml +# buildConfig: Release +# runtimeFlavor: coreclr +# isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} +# isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} +# platforms: +# - maccatalyst_x64 +# - maccatalyst_arm64 +# variables: +# - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: +# - name: _HelixSource +# value: pr/dotnet/runtime/$(Build.SourceBranch) +# - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: +# - name: _HelixSource +# value: ci/dotnet/runtime/$(Build.SourceBranch) +# - name: timeoutPerTestInMinutes +# value: 60 +# - name: timeoutPerTestCollectionInMinutes +# value: 180 +# jobParameters: +# testGroup: innerloop +# nameSuffix: AllSubsets_NativeAOT_RuntimeTests +# timeoutInMinutes: 240 +# buildArgs: -s clr.aot+libs -c $(_BuildConfig) -rc $(_BuildConfig) +# # extra steps, run tests +# extraVariablesTemplates: +# - template: /eng/pipelines/common/templates/runtimes/test-variables.yml +# parameters: +# testGroup: innerloop +# extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml +# extraStepsParameters: +# creator: dotnet-bot +# testBuildArgs: tree nativeaot/SmokeTests/UnitTests +# testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) diff --git a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets index 6a47b80d37d947..d758e3b9d27fa5 100644 --- a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets +++ b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets @@ -153,14 +153,6 @@ The .NET Foundation licenses this file to you under the MIT license. - - - - - - - - diff --git a/src/tests/build.proj b/src/tests/build.proj index 0acc1f6dc8c989..8b7b2282f337b8 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -9,8 +9,6 @@ 1 C# $(OutputRID) - <_IsApplePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true - <_IsiOSLikePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true @@ -472,8 +470,11 @@ - + + <_IsApplePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true + <_IsiOSLikePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true + <_targetOS>$(TargetOS) true static true @@ -487,7 +488,7 @@ - + $([System.IO.Path]::GetDirectoryName($([System.IO.Path]::GetDirectoryName($(_CMDDIR))))) $([System.IO.Path]::GetFileName($(CMDDIR_Grandparent))) diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs index d0981653585a58..da38a35e33afaf 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs @@ -52,7 +52,7 @@ public static int Run() } // Dynamic code generation not supported #if !TARGET_IOS && !TARGET_TVOS && !TARGET_MACCATALYST - // TestLinqExpressions.Run(); + TestLinqExpressions.Run(); #endif TestDefaultInterfaceMethods.Run(); diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs index 80d0c13f6b9132..92c7598e62e911 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs @@ -54,8 +54,8 @@ internal static int Run() TestVariantCasting.Run(); TestMDArrayAddressMethod.Run(); // SIGSEGV handler missing: https://github.com/dotnet/runtime/issues/87458 -#if !TARGET_IOS && !TARGET_TVOS && !TARGET_MACCATALYST - // TestNativeLayoutGeneration.Run(); +#if !TARGET_IOS && !TARGET_TVOS + TestNativeLayoutGeneration.Run(); #endif TestByRefLikeVTables.Run(); TestFunctionPointerLoading.Run(); diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs index e41aea8c0d156b..7f612c2811f615 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs @@ -18,9 +18,9 @@ public static int Run() return Fail; // SIGSEGV handler missing: https://github.com/dotnet/runtime/issues/87458 -#if !TARGET_IOS && !TARGET_TVOS && !TARGET_MACCATALYST - // if (TestAVInInterfaceCache() == Fail) - // return Fail; +#if !TARGET_IOS && !TARGET_TVOS + if (TestAVInInterfaceCache() == Fail) + return Fail; #endif if (TestMultipleInterfaces() == Fail) diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs index 58c071a24be7bc..62fdbdcdab242b 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs @@ -64,8 +64,8 @@ public static int Run() // Globalization not supported #if !TARGET_IOS && !TARGET_TVOS && !TARGET_MACCATALYST - // Console.WriteLine(" ThreadPoolTests.WorkerThreadStateReset"); - // ThreadPoolTests.WorkerThreadStateReset(); + Console.WriteLine(" ThreadPoolTests.WorkerThreadStateReset"); + ThreadPoolTests.WorkerThreadStateReset(); #endif // This test is not applicable (and will not pass) on Windows since it uses the Windows OS-provided thread pool. From 4e15bd1175fcf633473bcb0db658b46d21296e6e Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 16 Jun 2023 00:21:28 +0200 Subject: [PATCH 076/109] Remove redundant props --- src/tests/build.proj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index 8b7b2282f337b8..fce34726d1fbf0 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -57,7 +57,7 @@ - + @@ -472,8 +472,8 @@ - <_IsApplePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true - <_IsiOSLikePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true + <_IsApplePlatform>true + <_IsiOSLikePlatform>true <_targetOS>$(TargetOS) true static From 3d3ed5dd11a79912c29a310c2b2eb04555c43cca Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 16 Jun 2023 08:59:18 +0200 Subject: [PATCH 077/109] Disable failing tests --- src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs | 2 +- src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs | 2 +- src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs | 4 ++-- src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs index da38a35e33afaf..d0981653585a58 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs @@ -52,7 +52,7 @@ public static int Run() } // Dynamic code generation not supported #if !TARGET_IOS && !TARGET_TVOS && !TARGET_MACCATALYST - TestLinqExpressions.Run(); + // TestLinqExpressions.Run(); #endif TestDefaultInterfaceMethods.Run(); diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs index 92c7598e62e911..84304606a759b3 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs @@ -55,7 +55,7 @@ internal static int Run() TestMDArrayAddressMethod.Run(); // SIGSEGV handler missing: https://github.com/dotnet/runtime/issues/87458 #if !TARGET_IOS && !TARGET_TVOS - TestNativeLayoutGeneration.Run(); + // TestNativeLayoutGeneration.Run(); #endif TestByRefLikeVTables.Run(); TestFunctionPointerLoading.Run(); diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs index 7f612c2811f615..f9012d073a18f0 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs @@ -19,8 +19,8 @@ public static int Run() // SIGSEGV handler missing: https://github.com/dotnet/runtime/issues/87458 #if !TARGET_IOS && !TARGET_TVOS - if (TestAVInInterfaceCache() == Fail) - return Fail; + // if (TestAVInInterfaceCache() == Fail) + // return Fail; #endif if (TestMultipleInterfaces() == Fail) diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs index 62fdbdcdab242b..58c071a24be7bc 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs @@ -64,8 +64,8 @@ public static int Run() // Globalization not supported #if !TARGET_IOS && !TARGET_TVOS && !TARGET_MACCATALYST - Console.WriteLine(" ThreadPoolTests.WorkerThreadStateReset"); - ThreadPoolTests.WorkerThreadStateReset(); + // Console.WriteLine(" ThreadPoolTests.WorkerThreadStateReset"); + // ThreadPoolTests.WorkerThreadStateReset(); #endif // This test is not applicable (and will not pass) on Windows since it uses the Windows OS-provided thread pool. From a30a8ede36b9b459ba3826d9bad7fd2f60b4de9e Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 16 Jun 2023 15:07:58 +0200 Subject: [PATCH 078/109] Resolve PR comments --- .../runtime-extra-platforms-maccatalyst.yml | 41 ------------------- .../AppleAppBuilder/Templates/main-simple.m | 3 -- src/tests/Common/CLRTest.Execute.Bash.targets | 4 +- src/tests/Directory.Build.targets | 13 +----- src/tests/build.proj | 11 +++-- .../SmokeTests/UnitTests/Delegates.cs | 2 +- .../SmokeTests/UnitTests/Generics.cs | 4 +- .../SmokeTests/UnitTests/Interfaces.cs | 6 +-- .../SmokeTests/UnitTests/Threading.cs | 7 +--- .../SmokeTests/UnitTests/UnitTests.csproj | 2 + 10 files changed, 19 insertions(+), 74 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml index aae51cf90a2259..736bf0516dfdf2 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml @@ -75,44 +75,3 @@ jobs: creator: dotnet-bot interpreter: true testRunNamePrefixSuffix: Mono_$(_BuildConfig) - -# # -# # Build the whole product using Native AOT for maccatalyst and run runtime tests -# # -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml -# buildConfig: Release -# runtimeFlavor: coreclr -# isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} -# isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} -# platforms: -# - maccatalyst_x64 -# - maccatalyst_arm64 -# variables: -# - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: -# - name: _HelixSource -# value: pr/dotnet/runtime/$(Build.SourceBranch) -# - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: -# - name: _HelixSource -# value: ci/dotnet/runtime/$(Build.SourceBranch) -# - name: timeoutPerTestInMinutes -# value: 60 -# - name: timeoutPerTestCollectionInMinutes -# value: 180 -# jobParameters: -# testGroup: innerloop -# nameSuffix: AllSubsets_NativeAOT_RuntimeTests -# timeoutInMinutes: 240 -# buildArgs: -s clr.aot+libs -c $(_BuildConfig) -rc $(_BuildConfig) -# # extra steps, run tests -# extraVariablesTemplates: -# - template: /eng/pipelines/common/templates/runtimes/test-variables.yml -# parameters: -# testGroup: innerloop -# extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml -# extraStepsParameters: -# creator: dotnet-bot -# testBuildArgs: tree nativeaot/SmokeTests/UnitTests -# testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) diff --git a/src/tasks/AppleAppBuilder/Templates/main-simple.m b/src/tasks/AppleAppBuilder/Templates/main-simple.m index 5e9283966ba188..36bf576d51397a 100644 --- a/src/tasks/AppleAppBuilder/Templates/main-simple.m +++ b/src/tasks/AppleAppBuilder/Templates/main-simple.m @@ -48,9 +48,6 @@ - (void)viewDidLoad { [button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; [button setFrame:CGRectMake(50, 300, 200, 50)]; [button setTitle:@"Click me (wire me up)" forState:UIControlStateNormal]; -#if !USE_NATIVE_AOT - [button setExclusiveTouch:YES]; -#endif [self.view addSubview:button]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ diff --git a/src/tests/Common/CLRTest.Execute.Bash.targets b/src/tests/Common/CLRTest.Execute.Bash.targets index eeb47d6f7eb734..3242b6bfa77cf0 100644 --- a/src/tests/Common/CLRTest.Execute.Bash.targets +++ b/src/tests/Common/CLRTest.Execute.Bash.targets @@ -417,7 +417,7 @@ CLRTestExitCode=$? CLRTestExpectedExitCode=0 ]]> - + - + Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink - - - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) - $(IlcPath) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) - $(LibrariesAllBinArtifactsPath) - $(LibrariesAllBinArtifactsPath) - - - @@ -543,7 +533,8 @@ $(CoreCLRILCompilerDir) $(CoreCLRCrossILCompilerDir) $(CoreCLRILCompilerDir)netstandard/ILCompiler.Build.Tasks.dll - $(CoreCLRAotSdkDir) + $(CoreCLRAotSdkDir) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) $(MicrosoftNetCoreAppRuntimePackRidLibTfmDir) $(MicrosoftNetCoreAppRuntimePackNativeDir) $(OutputRID) diff --git a/src/tests/build.proj b/src/tests/build.proj index fce34726d1fbf0..5686f4821c35ec 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -480,11 +480,6 @@ true <_SymbolPrefix>_ --flat - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) - $(IlcPath) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) - $(LibrariesAllBinArtifactsPath) - $(LibrariesAllBinArtifactsPath) @@ -511,6 +506,7 @@ <_LinkerFlagsToDrop Include="@(LinkerArg)" Condition="$([System.String]::new('%(Identity)').Contains('swift'))" /> + @@ -518,6 +514,10 @@ + + $(GroupBuildCmd) "/p:CustomNativeMain=true" $(GroupBuildCmd) "/p:NativeCompilationDuringPublish=false" $(GroupBuildCmd) "/p:CustomIlcCompileDependsOn=true" - $(GroupBuildCmd) "/p:InvariantGlobalization=true" $(GroupBuildCmd) "/p:IlcMultiModule=true" $(GroupBuildCmd) "/p:BuildNativeAotFrameworkObjects=true" diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs index d0981653585a58..da38a35e33afaf 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs @@ -52,7 +52,7 @@ public static int Run() } // Dynamic code generation not supported #if !TARGET_IOS && !TARGET_TVOS && !TARGET_MACCATALYST - // TestLinqExpressions.Run(); + TestLinqExpressions.Run(); #endif TestDefaultInterfaceMethods.Run(); diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs index 84304606a759b3..4d7d2e981565a6 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs @@ -53,9 +53,9 @@ internal static int Run() TestNullableCasting.Run(); TestVariantCasting.Run(); TestMDArrayAddressMethod.Run(); -// SIGSEGV handler missing: https://github.com/dotnet/runtime/issues/87458 +// Tracking issue: https://github.com/dotnet/runtime/issues/87458 #if !TARGET_IOS && !TARGET_TVOS - // TestNativeLayoutGeneration.Run(); + TestNativeLayoutGeneration.Run(); #endif TestByRefLikeVTables.Run(); TestFunctionPointerLoading.Run(); diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs index f9012d073a18f0..fe05c142bf1faa 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs @@ -17,10 +17,10 @@ public static int Run() if (TestInterfaceCache() == Fail) return Fail; -// SIGSEGV handler missing: https://github.com/dotnet/runtime/issues/87458 +// Tracking issue: https://github.com/dotnet/runtime/issues/87458 #if !TARGET_IOS && !TARGET_TVOS - // if (TestAVInInterfaceCache() == Fail) - // return Fail; + if (TestAVInInterfaceCache() == Fail) + return Fail; #endif if (TestMultipleInterfaces() == Fail) diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs index 58c071a24be7bc..b20f9556a40354 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Threading.cs @@ -62,11 +62,8 @@ public static int Run() Console.WriteLine(" ThreadPoolTests.WorkQueueDepletionTest"); ThreadPoolTests.WorkQueueDepletionTest(); -// Globalization not supported -#if !TARGET_IOS && !TARGET_TVOS && !TARGET_MACCATALYST - // Console.WriteLine(" ThreadPoolTests.WorkerThreadStateReset"); - // ThreadPoolTests.WorkerThreadStateReset(); -#endif + Console.WriteLine(" ThreadPoolTests.WorkerThreadStateReset"); + ThreadPoolTests.WorkerThreadStateReset(); // This test is not applicable (and will not pass) on Windows since it uses the Windows OS-provided thread pool. // Console.WriteLine(" ThreadPoolTests.SettingMinThreadsWillCreateThreadsUpToMinimum"); diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/UnitTests.csproj b/src/tests/nativeaot/SmokeTests/UnitTests/UnitTests.csproj index 6eac9a88dbd924..ab72d0ec961fcf 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/UnitTests.csproj +++ b/src/tests/nativeaot/SmokeTests/UnitTests/UnitTests.csproj @@ -8,6 +8,8 @@ true $(NoWarn);IL3050;IL3054 + $(DefineConstants);TARGET_IOS + $(DefineConstants);TARGET_TVOS From 0674f40c7741540a8ebb9b30732212389992b683 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 17 Jun 2023 14:04:34 +0200 Subject: [PATCH 079/109] Add support for stripping debug symbols and enabling IL stripping during AOT compilation on iOS --- src/mono/sample/iOS-NativeAOT/Makefile | 2 +- src/tests/build.proj | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/mono/sample/iOS-NativeAOT/Makefile b/src/mono/sample/iOS-NativeAOT/Makefile index 2ef3ea826d5d52..dd796aa3cc93c2 100644 --- a/src/mono/sample/iOS-NativeAOT/Makefile +++ b/src/mono/sample/iOS-NativeAOT/Makefile @@ -4,7 +4,7 @@ TOP=../../../../ BUILD_CONFIG?=Debug TARGET_ARCH?=$(shell . $(TOP)eng/native/init-os-and-arch.sh && echo $${arch}) -TARGET_OS?=iossimulator +TARGET_OS?=ios DEPLOY_AND_RUN?=false STRIP_DEBUG_SYMBOLS?=false USE_RUNTIME_PACKS?=false diff --git a/src/tests/build.proj b/src/tests/build.proj index 5686f4821c35ec..f988d1487223de 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -3,6 +3,9 @@ + + + $(BaseOutputPathWithConfig) $(XunitTestBinBase)\TestWrappers\ @@ -566,7 +569,7 @@ From b8a8090d39919471fe9de7fdcdf9aec38eda3103 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 17 Jun 2023 14:17:28 +0200 Subject: [PATCH 080/109] Revert the last commit --- src/mono/sample/iOS-NativeAOT/Makefile | 2 +- src/tests/build.proj | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/mono/sample/iOS-NativeAOT/Makefile b/src/mono/sample/iOS-NativeAOT/Makefile index dd796aa3cc93c2..2ef3ea826d5d52 100644 --- a/src/mono/sample/iOS-NativeAOT/Makefile +++ b/src/mono/sample/iOS-NativeAOT/Makefile @@ -4,7 +4,7 @@ TOP=../../../../ BUILD_CONFIG?=Debug TARGET_ARCH?=$(shell . $(TOP)eng/native/init-os-and-arch.sh && echo $${arch}) -TARGET_OS?=ios +TARGET_OS?=iossimulator DEPLOY_AND_RUN?=false STRIP_DEBUG_SYMBOLS?=false USE_RUNTIME_PACKS?=false diff --git a/src/tests/build.proj b/src/tests/build.proj index f988d1487223de..5686f4821c35ec 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -3,9 +3,6 @@ - - - $(BaseOutputPathWithConfig) $(XunitTestBinBase)\TestWrappers\ @@ -569,7 +566,7 @@ From 512df8c549491a1e0cd6cc8af1321eb7658658a7 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 17 Jun 2023 15:57:36 +0200 Subject: [PATCH 081/109] Use the _AppleGenerateAppBundle target from AppleBuild.targets to build the app bundle --- .../msbuild/apple/build/AppleBuild.targets | 2 + src/tests/build.proj | 75 ++++++++----------- 2 files changed, 33 insertions(+), 44 deletions(-) diff --git a/src/mono/msbuild/apple/build/AppleBuild.targets b/src/mono/msbuild/apple/build/AppleBuild.targets index 990269a3f4f78e..f99b2a185796f2 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.targets @@ -239,6 +239,8 @@ + + + $(BaseOutputPathWithConfig) $(XunitTestBinBase)\TestWrappers\ @@ -469,76 +472,60 @@ - - + + - <_IsApplePlatform>true - <_IsiOSLikePlatform>true <_targetOS>$(TargetOS) true static true - <_SymbolPrefix>_ - --flat + <_IsApplePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true + <_IsiOSLikePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true + --flat + <_SymbolPrefix Condition="'$(_IsApplePlatform)' == 'true'">_ - + + - $([System.IO.Path]::GetDirectoryName($([System.IO.Path]::GetDirectoryName($(_CMDDIR))))) - $([System.IO.Path]::GetFileName($(CMDDIR_Grandparent))) - $(TestingGroup)/$([System.String]::Copy('$(_CMDDIR)').Replace("$(CMDDIR_Grandparent)/","")) + $([System.IO.Path]::GetDirectoryName($([System.IO.Path]::GetDirectoryName($(_CMDDIR))))) + $([System.IO.Path]::GetFileName($(CategoryPath))) + $(CategoryName)/$([System.String]::Copy('$(_CMDDIR)').Replace("$(CategoryPath)/","")) $([System.IO.Path]::GetFileName($(_CMDDIR))) - $([System.String]::Copy('$(CategoryWithSlash)').Replace('/','_')) - $(IntermediateOutputPath)\iOSApps\$(Category) - $(XUnitTestBinBase)$(CategoryWithSlash)\$(Category).app + $([System.String]::Copy('$(TestRelativePath)').Replace('/','_')) + $(IntermediateOutputPath)\iOSApps\$(AppName) + $(XUnitTestBinBase)$(TestRelativePath)\$(AppName).app - $([MSBuild]::NormalizeDirectory('$(BuildDir)', 'AppBundle')) - $(Category) - <_NativeDependencies>$(IntermediateOutputPath)\..\$(CategoryWithSlash)\$(TestName)\native\$(TestName).o + $(IntermediateOutputPath)\..\$(TestRelativePath)\$(TestName)\native\$(TestName).o - + true + true + $(AppDir) + false <_LinkerFlagsToDrop Include="@(NativeFramework->'-framework %(Identity)')" /> <_LinkerFlagsToDrop Include="@(LinkerArg)" Condition="$([System.String]::new('%(Identity)').Contains('swift'))" /> - + - - + - + - - - - - + DestinationFolder="$(AppleBuildDir)" /> + + + @@ -548,7 +535,7 @@ - + @@ -566,7 +553,7 @@ From 60da57abfdd45d39242061ec2fe89592417fc31c Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 17 Jun 2023 21:06:05 +0200 Subject: [PATCH 082/109] Update IlcToolsPath to use host build --- src/tests/Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/Directory.Build.targets b/src/tests/Directory.Build.targets index eacf13c14bacc5..77762645f056a3 100644 --- a/src/tests/Directory.Build.targets +++ b/src/tests/Directory.Build.targets @@ -531,7 +531,7 @@ partial $(CoreCLRILCompilerDir) - $(CoreCLRCrossILCompilerDir) + $(CoreCLRCrossILCompilerDir) $(CoreCLRILCompilerDir)netstandard/ILCompiler.Build.Tasks.dll $(CoreCLRAotSdkDir) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) From d14f69ad82f179b7e16ba8b4d188b5b3b7ddcc9d Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 17 Jun 2023 22:29:09 +0200 Subject: [PATCH 083/109] Update IlcToolsPath to use host build --- src/tests/Directory.Build.targets | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tests/Directory.Build.targets b/src/tests/Directory.Build.targets index 77762645f056a3..3ee2b99e485d21 100644 --- a/src/tests/Directory.Build.targets +++ b/src/tests/Directory.Build.targets @@ -532,6 +532,7 @@ $(CoreCLRILCompilerDir) $(CoreCLRCrossILCompilerDir) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) $(CoreCLRILCompilerDir)netstandard/ILCompiler.Build.Tasks.dll $(CoreCLRAotSdkDir) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) From 2416dbcb2696270bcd7a4c40ba0f422d536b8295 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 18 Jun 2023 00:00:28 +0200 Subject: [PATCH 084/109] Revert build changes to ensure correct build --- src/tests/Directory.Build.targets | 16 ++++++++++++---- src/tests/build.proj | 5 +++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/tests/Directory.Build.targets b/src/tests/Directory.Build.targets index 3ee2b99e485d21..4c045e550e1c06 100644 --- a/src/tests/Directory.Build.targets +++ b/src/tests/Directory.Build.targets @@ -26,6 +26,16 @@ Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink + + + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) + $(IlcPath) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) + $(LibrariesAllBinArtifactsPath) + $(LibrariesAllBinArtifactsPath) + + + @@ -531,11 +541,9 @@ partial $(CoreCLRILCompilerDir) - $(CoreCLRCrossILCompilerDir) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) + $(CoreCLRCrossILCompilerDir) $(CoreCLRILCompilerDir)netstandard/ILCompiler.Build.Tasks.dll - $(CoreCLRAotSdkDir) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) + $(CoreCLRAotSdkDir) $(MicrosoftNetCoreAppRuntimePackRidLibTfmDir) $(MicrosoftNetCoreAppRuntimePackNativeDir) $(OutputRID) diff --git a/src/tests/build.proj b/src/tests/build.proj index 1f50a6a3df5b31..5536c40b38baf8 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -483,6 +483,11 @@ <_IsiOSLikePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true --flat <_SymbolPrefix Condition="'$(_IsApplePlatform)' == 'true'">_ + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) + $(IlcPath) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) + $(LibrariesAllBinArtifactsPath) + $(LibrariesAllBinArtifactsPath) From 540e373f1ff3af63ad8270eeb688d8756e077c3a Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 18 Jun 2023 08:39:10 +0200 Subject: [PATCH 085/109] Update ExtraAppLinkerArgs --- src/tests/build.proj | 1 - 1 file changed, 1 deletion(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index 5536c40b38baf8..ed0a117f530e95 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -514,7 +514,6 @@ <_LinkerFlagsToDrop Include="@(NativeFramework->'-framework %(Identity)')" /> - <_LinkerFlagsToDrop Include="@(LinkerArg)" Condition="$([System.String]::new('%(Identity)').Contains('swift'))" /> From 66690f2115611e47eaf1a54a61371cdd94aed7a2 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 18 Jun 2023 11:06:23 +0200 Subject: [PATCH 086/109] Update ILC tools path --- src/mono/sample/iOS-NativeAOT/Program.csproj | 1 - src/tests/Directory.Build.targets | 15 +++------------ src/tests/build.proj | 6 +----- 3 files changed, 4 insertions(+), 18 deletions(-) diff --git a/src/mono/sample/iOS-NativeAOT/Program.csproj b/src/mono/sample/iOS-NativeAOT/Program.csproj index f1efdfd7884ffb..33fb63dd33c925 100644 --- a/src/mono/sample/iOS-NativeAOT/Program.csproj +++ b/src/mono/sample/iOS-NativeAOT/Program.csproj @@ -68,7 +68,6 @@ <_LinkerFlagsToDrop Include="@(NativeFramework->'-framework %(Identity)')" /> - <_LinkerFlagsToDrop Include="@(LinkerArg)" Condition="$([System.String]::new('%(Identity)').Contains('swift'))" /> <_NativeDependencies Include="%(ManagedBinary.IlcOutputFile)" /> diff --git a/src/tests/Directory.Build.targets b/src/tests/Directory.Build.targets index 4c045e550e1c06..77762645f056a3 100644 --- a/src/tests/Directory.Build.targets +++ b/src/tests/Directory.Build.targets @@ -26,16 +26,6 @@ Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink - - - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) - $(IlcPath) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) - $(LibrariesAllBinArtifactsPath) - $(LibrariesAllBinArtifactsPath) - - - @@ -541,9 +531,10 @@ partial $(CoreCLRILCompilerDir) - $(CoreCLRCrossILCompilerDir) + $(CoreCLRCrossILCompilerDir) $(CoreCLRILCompilerDir)netstandard/ILCompiler.Build.Tasks.dll - $(CoreCLRAotSdkDir) + $(CoreCLRAotSdkDir) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) $(MicrosoftNetCoreAppRuntimePackRidLibTfmDir) $(MicrosoftNetCoreAppRuntimePackNativeDir) $(OutputRID) diff --git a/src/tests/build.proj b/src/tests/build.proj index ed0a117f530e95..686a06d6e459c4 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -483,11 +483,6 @@ <_IsiOSLikePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true --flat <_SymbolPrefix Condition="'$(_IsApplePlatform)' == 'true'">_ - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) - $(IlcPath) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) - $(LibrariesAllBinArtifactsPath) - $(LibrariesAllBinArtifactsPath) @@ -510,6 +505,7 @@ true $(AppDir) false + false From 2d030cd1b3a1ca20ba1ddce53060419fd8c296f1 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 19 Jun 2023 11:28:25 +0200 Subject: [PATCH 087/109] Use CoreCLRAotSdkDir for IlcSdkPath in the sample app --- src/mono/sample/iOS-NativeAOT/Program.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/sample/iOS-NativeAOT/Program.csproj b/src/mono/sample/iOS-NativeAOT/Program.csproj index 33fb63dd33c925..a6526e6866634e 100644 --- a/src/mono/sample/iOS-NativeAOT/Program.csproj +++ b/src/mono/sample/iOS-NativeAOT/Program.csproj @@ -48,7 +48,7 @@ $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) $(IlcPath) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) + $(CoreCLRAotSdkDir) $(LibrariesAllBinArtifactsPath) $(LibrariesAllBinArtifactsPath) From 73a1aa00f600b99ce483a1105c2d5178a6f187e2 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 19 Jun 2023 12:38:13 +0200 Subject: [PATCH 088/109] Enable tests that failed locally due to SIGSEGV --- src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs | 3 --- src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs | 3 --- 2 files changed, 6 deletions(-) diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs index 4d7d2e981565a6..8e70602728f5ab 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Generics.cs @@ -53,10 +53,7 @@ internal static int Run() TestNullableCasting.Run(); TestVariantCasting.Run(); TestMDArrayAddressMethod.Run(); -// Tracking issue: https://github.com/dotnet/runtime/issues/87458 -#if !TARGET_IOS && !TARGET_TVOS TestNativeLayoutGeneration.Run(); -#endif TestByRefLikeVTables.Run(); TestFunctionPointerLoading.Run(); diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs index fe05c142bf1faa..f163dbba5ba6c7 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Interfaces.cs @@ -17,11 +17,8 @@ public static int Run() if (TestInterfaceCache() == Fail) return Fail; -// Tracking issue: https://github.com/dotnet/runtime/issues/87458 -#if !TARGET_IOS && !TARGET_TVOS if (TestAVInInterfaceCache() == Fail) return Fail; -#endif if (TestMultipleInterfaces() == Fail) return Fail; From 34bb1f49be4cdf7c658b4fd044a7cd6c5a4d1943 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 20 Jun 2023 12:36:36 +0200 Subject: [PATCH 089/109] Simplify the build process by using the publish ILC targets --- .../Microsoft.NETCore.Native.Publish.targets | 2 +- src/mono/sample/iOS-NativeAOT/Program.csproj | 2 +- src/tests/Common/CLRTest.Execute.Bash.targets | 31 +------------------ src/tests/Directory.Build.props | 11 +++++++ src/tests/Directory.Build.targets | 10 ++---- src/tests/build.proj | 20 +----------- 6 files changed, 18 insertions(+), 58 deletions(-) diff --git a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets index 8b1846092059a8..ba80dbdfc1fa7d 100644 --- a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets +++ b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets @@ -49,7 +49,7 @@ - + diff --git a/src/mono/sample/iOS-NativeAOT/Program.csproj b/src/mono/sample/iOS-NativeAOT/Program.csproj index a6526e6866634e..33fb63dd33c925 100644 --- a/src/mono/sample/iOS-NativeAOT/Program.csproj +++ b/src/mono/sample/iOS-NativeAOT/Program.csproj @@ -48,7 +48,7 @@ $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) $(IlcPath) - $(CoreCLRAotSdkDir) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) $(LibrariesAllBinArtifactsPath) $(LibrariesAllBinArtifactsPath) diff --git a/src/tests/Common/CLRTest.Execute.Bash.targets b/src/tests/Common/CLRTest.Execute.Bash.targets index 3242b6bfa77cf0..d58672232a2ce7 100644 --- a/src/tests/Common/CLRTest.Execute.Bash.targets +++ b/src/tests/Common/CLRTest.Execute.Bash.targets @@ -417,7 +417,7 @@ CLRTestExitCode=$? CLRTestExpectedExitCode=0 ]]> - + - - - diff --git a/src/tests/Directory.Build.props b/src/tests/Directory.Build.props index bf5a79f1c00e06..a562db124ba5ed 100644 --- a/src/tests/Directory.Build.props +++ b/src/tests/Directory.Build.props @@ -211,6 +211,17 @@ true + + <_targetOS>$(TargetOS) + true + static + true + <_IsApplePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true + <_IsiOSLikePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true + --flat + <_SymbolPrefix Condition="'$(_IsApplePlatform)' == 'true'">_ + + diff --git a/src/tests/Directory.Build.targets b/src/tests/Directory.Build.targets index 77762645f056a3..cd77ab17f457e2 100644 --- a/src/tests/Directory.Build.targets +++ b/src/tests/Directory.Build.targets @@ -22,10 +22,6 @@ $(NoWarn);CS2008 - - Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink - - @@ -531,10 +527,10 @@ partial $(CoreCLRILCompilerDir) - $(CoreCLRCrossILCompilerDir) + $(CoreCLRCrossILCompilerDir) $(CoreCLRILCompilerDir)netstandard/ILCompiler.Build.Tasks.dll - $(CoreCLRAotSdkDir) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) + $(CoreCLRAotSdkDir) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) $(MicrosoftNetCoreAppRuntimePackRidLibTfmDir) $(MicrosoftNetCoreAppRuntimePackNativeDir) $(OutputRID) diff --git a/src/tests/build.proj b/src/tests/build.proj index 686a06d6e459c4..59fcdb0d53082f 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -472,22 +472,9 @@ - - - - <_targetOS>$(TargetOS) - true - static - true - <_IsApplePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true - <_IsiOSLikePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true - --flat - <_SymbolPrefix Condition="'$(_IsApplePlatform)' == 'true'">_ - - - + $([System.IO.Path]::GetDirectoryName($([System.IO.Path]::GetDirectoryName($(_CMDDIR))))) $([System.IO.Path]::GetFileName($(CategoryPath))) @@ -670,11 +657,6 @@ $(GroupBuildCmd) /bl:$(ArtifactsDir)/log/$(Configuration)/InnerManagedTestBuild.$(__TestGroupToBuild).binlog $(GroupBuildCmd) "/p:CrossBuild=true" $(GroupBuildCmd) "/p:DefaultBuildAllTarget=BuildNativeAot" - $(GroupBuildCmd) "/p:UseNativeAOTRuntime=true" - $(GroupBuildCmd) "/p:NativeLib=static" - $(GroupBuildCmd) "/p:CustomNativeMain=true" - $(GroupBuildCmd) "/p:NativeCompilationDuringPublish=false" - $(GroupBuildCmd) "/p:CustomIlcCompileDependsOn=true" $(GroupBuildCmd) "/p:IlcMultiModule=true" $(GroupBuildCmd) "/p:BuildNativeAotFrameworkObjects=true" From a5b3aed37b130204655d8a47a2cc843a001e20b1 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 20 Jun 2023 17:41:59 +0200 Subject: [PATCH 090/109] Fix lint --- src/tests/Directory.Build.props | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/tests/Directory.Build.props b/src/tests/Directory.Build.props index a562db124ba5ed..df1cebb1144473 100644 --- a/src/tests/Directory.Build.props +++ b/src/tests/Directory.Build.props @@ -212,14 +212,14 @@ - <_targetOS>$(TargetOS) - true - static - true - <_IsApplePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true - <_IsiOSLikePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true - --flat - <_SymbolPrefix Condition="'$(_IsApplePlatform)' == 'true'">_ + <_targetOS>$(TargetOS) + true + static + true + <_IsApplePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true + <_IsiOSLikePlatform Condition="'$(TargetsAppleMobile)' == 'true'">true + --flat + <_SymbolPrefix Condition="'$(_IsApplePlatform)' == 'true'">_ From 597ae8ce4d5b3b7686bb9f0a5f98c5c7cd27bd07 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 26 Jun 2023 22:56:47 +0200 Subject: [PATCH 091/109] Build for the target platform --- eng/pipelines/common/global-build-job.yml | 15 ------------ eng/pipelines/common/platform-matrix.yml | 24 ------------------- eng/pipelines/coreclr/templates/perf-job.yml | 2 +- .../runtime-extra-platforms-ioslike.yml | 2 +- ...ntime-extra-platforms-ioslikesimulator.yml | 2 +- 5 files changed, 3 insertions(+), 42 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 6aa9abe6a79f3f..67076789f594b6 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -4,7 +4,6 @@ parameters: buildArgs: '' archType: '' hostedOs: '' - hostedArch: '' osGroup: '' osSubgroup: '' container: '' @@ -73,11 +72,6 @@ jobs: value: -os ${{ parameters.osGroup }} - name: _archParameter value: -arch ${{ parameters.archType }} - - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'iossimulator', 'tvos', 'tvossimulator', 'maccatalyst')) }}: - - name: _osParameter - value: -os ${{ parameters.hostedOs }} - - name: _archParameter - value: -arch ${{ parameters.hostedArch }} - ${{ if and(eq(parameters.osGroup, 'linux'), eq(parameters.osSubGroup, '_bionic')) }}: - name: _osParameter @@ -208,15 +202,6 @@ jobs: displayName: Finalize CodeQL (manually-injected) #endif isSourceBuild - # Build Native AOT runtime packs - - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'iossimulator', 'tvos', 'tvossimulator', 'maccatalyst')) }}: - - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) - clr.nativeaotruntime+clr.nativeaotlibs+libs - -os ${{ parameters.osGroup }} - -arch ${{ parameters.archType }} - -c ${{ parameters.buildConfig }} - displayName: "Build Native AOT runtime packs" - - ${{ if in(parameters.osGroup, 'osx', 'ios', 'tvos', 'android') }}: - script: | du -sh $(Build.SourcesDirectory)/* diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index c783bb2ffbf496..8399c82ecd7695 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -674,9 +674,6 @@ jobs: platform: maccatalyst_x64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: - hostedOs: osx - hostedArch: x64 ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -699,9 +696,6 @@ jobs: platform: maccatalyst_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: - hostedOs: osx - hostedArch: x64 ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -724,9 +718,6 @@ jobs: platform: tvos_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: - hostedOs: osx - hostedArch: x64 ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -749,9 +740,6 @@ jobs: platform: tvossimulator_x64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: - hostedOs: osx - hostedArch: x64 ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -774,9 +762,6 @@ jobs: platform: tvossimulator_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: - hostedOs: osx - hostedArch: x64 ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -799,9 +784,6 @@ jobs: platform: ios_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: - hostedOs: osx - hostedArch: x64 ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -824,9 +806,6 @@ jobs: platform: iossimulator_x64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: - hostedOs: osx - hostedArch: x64 ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: @@ -849,9 +828,6 @@ jobs: platform: iossimulator_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: - hostedOs: osx - hostedArch: x64 ${{ if eq(parameters.runtimeFlavor, '') }}: runtimeFlavor: mono ${{ else }}: diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml index 98b0c8fb967609..28d3b8ef75188c 100644 --- a/eng/pipelines/coreclr/templates/perf-job.yml +++ b/eng/pipelines/coreclr/templates/perf-job.yml @@ -88,7 +88,7 @@ jobs: - ${{ if eq(parameters.runtimeType, 'iOSMono')}}: - ${{ 'build_ios_arm64_release_iOSMono' }} - ${{ if eq(parameters.runtimeType, 'iOSNativeAOT')}}: - - ${{ 'build_ios_arm64_osx_release_iOSNativeAOT' }} + - ${{ 'build_ios_arm64_release_iOSNativeAOT' }} ${{ if and(eq(parameters.osGroup, 'windows'), not(in(parameters.runtimeType, 'AndroidMono', 'iOSMono', 'iOSNativeAOT'))) }}: ${{ if eq(parameters.runtimeType, 'mono') }}: diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 158a1f8d20f315..f94989377a90e8 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -113,7 +113,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests timeoutInMinutes: 240 - buildArgs: -s clr.aot+libs -c $(_BuildConfig) -rc $(_BuildConfig) + buildArgs: -s clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) -rc $(_BuildConfig) # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 47d3bba939c448..9743f553d41f04 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -119,7 +119,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests timeoutInMinutes: 240 - buildArgs: -s clr.aot+libs -c $(_BuildConfig) -rc $(_BuildConfig) + buildArgs: -s clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) -rc $(_BuildConfig) # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml From a134b604d17280d64bfbf98a6fb5cf41b12f0fd2 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 26 Jun 2023 23:27:56 +0200 Subject: [PATCH 092/109] Add TargetArchitecture to the Native AOT host build --- eng/Subsets.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Subsets.props b/eng/Subsets.props index 25375fc133dd51..180ccd25d79ffc 100644 --- a/eng/Subsets.props +++ b/eng/Subsets.props @@ -303,7 +303,7 @@ true - TargetOS=osx + TargetOS=osx;TargetArchitecture=$(BuildArchitecture) Date: Tue, 27 Jun 2023 00:15:14 +0200 Subject: [PATCH 093/109] Generate crosscomponents when target is iOS-like --- src/coreclr/crosscomponents.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/crosscomponents.cmake b/src/coreclr/crosscomponents.cmake index 2bd288221192f9..6af0f327c6a00e 100644 --- a/src/coreclr/crosscomponents.cmake +++ b/src/coreclr/crosscomponents.cmake @@ -1,5 +1,5 @@ # Add targets to the crosscomponents subcomponent build -if (CLR_CMAKE_HOST_OS STREQUAL CLR_CMAKE_TARGET_OS) +if (CLR_CMAKE_HOST_OS STREQUAL CLR_CMAKE_TARGET_OS OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS OR CLR_CMAKE_TARGET_MACCATALYST) install_clr (TARGETS jitinterface_${ARCH_HOST_NAME} DESTINATIONS . From 397bb17b371b40880c7770f6e0670247e0043208 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 27 Jun 2023 15:43:52 +0200 Subject: [PATCH 094/109] Revert corsscomponent changes --- src/coreclr/crosscomponents.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/crosscomponents.cmake b/src/coreclr/crosscomponents.cmake index 6af0f327c6a00e..2bd288221192f9 100644 --- a/src/coreclr/crosscomponents.cmake +++ b/src/coreclr/crosscomponents.cmake @@ -1,5 +1,5 @@ # Add targets to the crosscomponents subcomponent build -if (CLR_CMAKE_HOST_OS STREQUAL CLR_CMAKE_TARGET_OS OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS OR CLR_CMAKE_TARGET_MACCATALYST) +if (CLR_CMAKE_HOST_OS STREQUAL CLR_CMAKE_TARGET_OS) install_clr (TARGETS jitinterface_${ARCH_HOST_NAME} DESTINATIONS . From ca6b86714f92b5bfe2e127ddbe9738d0d53a44a7 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 27 Jun 2023 17:38:22 +0200 Subject: [PATCH 095/109] Fix CoreCLRILCompilerDir property --- eng/liveBuilds.targets | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/liveBuilds.targets b/eng/liveBuilds.targets index f3cf0a1df455dd..8931b2bffa315e 100644 --- a/eng/liveBuilds.targets +++ b/eng/liveBuilds.targets @@ -26,6 +26,7 @@ $([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'sharedFramework')) $([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'crossgen2')) $([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'ilc-published')) + $([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'ilc')) $([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', '$(BuildArchitecture)', 'ilc')) $([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'aotsdk')) $([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'build')) From 2ec41abecc49f5c70d442387f20a2f4dca35218a Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 27 Jun 2023 19:45:28 +0200 Subject: [PATCH 096/109] Build ILCompiler.Build.Tasks with host bits --- eng/Subsets.props | 1 + eng/liveBuilds.targets | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Subsets.props b/eng/Subsets.props index bfa808ab25cd95..46ebff5fd85005 100644 --- a/eng/Subsets.props +++ b/eng/Subsets.props @@ -317,6 +317,7 @@ CMakeArgs=$(CMakeArgs) -DCLR_CROSS_COMPONENTS_BUILD=1" Category="clr" /> + diff --git a/eng/liveBuilds.targets b/eng/liveBuilds.targets index 8931b2bffa315e..f3cf0a1df455dd 100644 --- a/eng/liveBuilds.targets +++ b/eng/liveBuilds.targets @@ -26,7 +26,6 @@ $([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'sharedFramework')) $([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'crossgen2')) $([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'ilc-published')) - $([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'ilc')) $([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', '$(BuildArchitecture)', 'ilc')) $([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'aotsdk')) $([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'build')) From 8f96ddccc045ee54d63844b4463981e178c822a6 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 12 Jul 2023 12:56:12 +0200 Subject: [PATCH 097/109] Update the CI to use cross-build and add maccatalyst job --- eng/liveBuilds.targets | 3 +- .../runtime-extra-platforms-ioslike.yml | 2 +- ...ntime-extra-platforms-ioslikesimulator.yml | 2 +- .../runtime-extra-platforms-maccatalyst.yml | 41 +++++++++++++++++++ src/mono/sample/iOS-NativeAOT/Program.csproj | 2 +- src/tests/Directory.Build.targets | 5 +-- .../SmokeTests/UnitTests/UnitTests.csproj | 1 + 7 files changed, 48 insertions(+), 8 deletions(-) diff --git a/eng/liveBuilds.targets b/eng/liveBuilds.targets index 8e28b4eb65bcb7..3830816fc037a2 100644 --- a/eng/liveBuilds.targets +++ b/eng/liveBuilds.targets @@ -14,8 +14,7 @@ - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)')) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)')) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'mono', '$(TargetOS).$(TargetArchitecture).$(MonoConfiguration)')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts')) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index f94989377a90e8..ac4adbe8873069 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -113,7 +113,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests timeoutInMinutes: 240 - buildArgs: -s clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) -rc $(_BuildConfig) + buildArgs: -s --cross clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) -rc $(_BuildConfig) # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 9743f553d41f04..8b41b98453fc84 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -119,7 +119,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests timeoutInMinutes: 240 - buildArgs: -s clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) -rc $(_BuildConfig) + buildArgs: -s --cross clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) -rc $(_BuildConfig) # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml index 736bf0516dfdf2..834ff650f07d5c 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml @@ -75,3 +75,44 @@ jobs: creator: dotnet-bot interpreter: true testRunNamePrefixSuffix: Mono_$(_BuildConfig) + +# +# Build the whole product using Native AOT for MacCatalyst and run runtime tests +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: coreclr + isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + isiOSLikeOnlyBuild: ${{ parameters.isMacCatalystOnlyBuild }} + platforms: + - maccatalyst_x64 + - maccatalyst_arm64 + variables: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: pr/dotnet/runtime/$(Build.SourceBranch) + - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: ci/dotnet/runtime/$(Build.SourceBranch) + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_NativeAOT_RuntimeTests + timeoutInMinutes: 240 + buildArgs: -s --cross clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) -rc $(_BuildConfig) + # extra steps, run tests + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: innerloop + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + testBuildArgs: tree nativeaot/SmokeTests/UnitTests + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) diff --git a/src/mono/sample/iOS-NativeAOT/Program.csproj b/src/mono/sample/iOS-NativeAOT/Program.csproj index a6a4cb25a0f608..ba2adc53d832dd 100644 --- a/src/mono/sample/iOS-NativeAOT/Program.csproj +++ b/src/mono/sample/iOS-NativeAOT/Program.csproj @@ -46,7 +46,7 @@ - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', '$(BuildArchitecture)' ,'ilc')) + $(CoreCLRAotSdkDir) $(IlcPath) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) $(LibrariesAllBinArtifactsPath) diff --git a/src/tests/Directory.Build.targets b/src/tests/Directory.Build.targets index b8a935c4607b63..b5bec81d6845e9 100644 --- a/src/tests/Directory.Build.targets +++ b/src/tests/Directory.Build.targets @@ -530,10 +530,9 @@ partial $(CoreCLRILCompilerDir) - $(CoreCLRCrossILCompilerDir) + $(CoreCLRCrossILCompilerDir) $(CoreCLRILCompilerDir)netstandard/ILCompiler.Build.Tasks.dll - $(CoreCLRAotSdkDir) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) + $(CoreCLRAotSdkDir) $(MicrosoftNetCoreAppRuntimePackRidLibTfmDir) $(MicrosoftNetCoreAppRuntimePackNativeDir) $(OutputRID) diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/UnitTests.csproj b/src/tests/nativeaot/SmokeTests/UnitTests/UnitTests.csproj index ab72d0ec961fcf..d6411434ff78be 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/UnitTests.csproj +++ b/src/tests/nativeaot/SmokeTests/UnitTests/UnitTests.csproj @@ -10,6 +10,7 @@ $(NoWarn);IL3050;IL3054 $(DefineConstants);TARGET_IOS $(DefineConstants);TARGET_TVOS + $(DefineConstants);TARGET_MACCATALYST From 64ebb2c1df17117a7e78e3ef6e1674d5cd21a442 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 12 Jul 2023 13:02:57 +0200 Subject: [PATCH 098/109] Fix build command to pass --cross before -s components --- .../extra-platforms/runtime-extra-platforms-ioslike.yml | 2 +- .../runtime-extra-platforms-ioslikesimulator.yml | 2 +- .../extra-platforms/runtime-extra-platforms-maccatalyst.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index ac4adbe8873069..1124113e8b2d76 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -113,7 +113,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests timeoutInMinutes: 240 - buildArgs: -s --cross clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) -rc $(_BuildConfig) + buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) -rc $(_BuildConfig) # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 8b41b98453fc84..9ce7818fa2a9a1 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -119,7 +119,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests timeoutInMinutes: 240 - buildArgs: -s --cross clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) -rc $(_BuildConfig) + buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) -rc $(_BuildConfig) # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml index 834ff650f07d5c..223dda68cc9cbe 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml @@ -105,7 +105,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests timeoutInMinutes: 240 - buildArgs: -s --cross clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) -rc $(_BuildConfig) + buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) -rc $(_BuildConfig) # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml From 3162bdc2e5e9e68817c926e258f9becb4c285bfb Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 12 Jul 2023 14:16:49 +0200 Subject: [PATCH 099/109] Skip check for RuntimeFiles when building Native AOT for apple mobile --- eng/liveBuilds.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/liveBuilds.targets b/eng/liveBuilds.targets index 3830816fc037a2..f4f32211fd5036 100644 --- a/eng/liveBuilds.targets +++ b/eng/liveBuilds.targets @@ -128,7 +128,7 @@ - + From 70aa943aaccd564396f09685a13f46db51083c28 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 12 Jul 2023 15:23:00 +0200 Subject: [PATCH 100/109] Remove maccatalyst tests --- .../runtime-extra-platforms-maccatalyst.yml | 41 ------------------- 1 file changed, 41 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml index 223dda68cc9cbe..736bf0516dfdf2 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml @@ -75,44 +75,3 @@ jobs: creator: dotnet-bot interpreter: true testRunNamePrefixSuffix: Mono_$(_BuildConfig) - -# -# Build the whole product using Native AOT for MacCatalyst and run runtime tests -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: coreclr - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isiOSLikeOnlyBuild: ${{ parameters.isMacCatalystOnlyBuild }} - platforms: - - maccatalyst_x64 - - maccatalyst_arm64 - variables: - - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: pr/dotnet/runtime/$(Build.SourceBranch) - - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: ci/dotnet/runtime/$(Build.SourceBranch) - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_NativeAOT_RuntimeTests - timeoutInMinutes: 240 - buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) -rc $(_BuildConfig) - # extra steps, run tests - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testBuildArgs: tree nativeaot/SmokeTests/UnitTests - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) From 96a91279c55b6b4d1169d423e494426160b52c56 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 12 Jul 2023 15:28:36 +0200 Subject: [PATCH 101/109] Update ilc paths in the sample app --- src/mono/sample/iOS-NativeAOT/Program.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mono/sample/iOS-NativeAOT/Program.csproj b/src/mono/sample/iOS-NativeAOT/Program.csproj index ba2adc53d832dd..fcad38c4512747 100644 --- a/src/mono/sample/iOS-NativeAOT/Program.csproj +++ b/src/mono/sample/iOS-NativeAOT/Program.csproj @@ -46,9 +46,9 @@ - $(CoreCLRAotSdkDir) + $(CoreCLRArtifactsPath) $(IlcPath) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) + $(CoreCLRAotSdkDir) $(LibrariesAllBinArtifactsPath) $(LibrariesAllBinArtifactsPath) From 432002146ffbad0569897dfffc3602b0412917e5 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 13 Jul 2023 09:11:27 +0200 Subject: [PATCH 102/109] Update the sample app to use the cross-build. Disable failing tests with OperatingSystem.Is...(). --- src/mono/sample/iOS-NativeAOT/Makefile | 10 +++------- src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs | 11 +++++++---- .../nativeaot/SmokeTests/UnitTests/UnitTests.csproj | 3 --- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/mono/sample/iOS-NativeAOT/Makefile b/src/mono/sample/iOS-NativeAOT/Makefile index 2ef3ea826d5d52..29f98c45041690 100644 --- a/src/mono/sample/iOS-NativeAOT/Makefile +++ b/src/mono/sample/iOS-NativeAOT/Makefile @@ -23,22 +23,18 @@ world: build-deps all # build all dependencies: runtime, nativeAot and all the libs ifeq ($(USE_RUNTIME_PACKS),false) -build-deps: build-runtime-ilc build-libs-all +build-deps: build-runtime-libs-ilc else build-deps: build-runtime-ilc-packs build-libs-all-packs endif # building for host -build-runtime-ilc: - $(BUILD_SCRIPT) clr+clr.aot -c $(BUILD_CONFIG) +build-runtime-libs-ilc: + $(BUILD_SCRIPT) --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(BUILD_CONFIG) -os $(TARGET_OS) -arch $(TARGET_ARCH) build-runtime-ilc-packs: $(BUILD_SCRIPT) clr+clr.aot+libs+packs -c $(BUILD_CONFIG) -# building for target platform -build-libs-all: - $(BUILD_SCRIPT) clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(BUILD_CONFIG) -os $(TARGET_OS) -arch $(TARGET_ARCH) - build-libs-all-packs: $(BUILD_SCRIPT) clr.nativeaotruntime+clr.nativeaotlibs+libs+packs -c $(BUILD_CONFIG) -os $(TARGET_OS) -arch $(TARGET_ARCH) /p:BuildNativeAOTRuntimePack=true diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs index da38a35e33afaf..9452d8700e714b 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs @@ -50,10 +50,13 @@ public static int Run() Console.WriteLine("Failed"); result = Fail; } -// Dynamic code generation not supported -#if !TARGET_IOS && !TARGET_TVOS && !TARGET_MACCATALYST - TestLinqExpressions.Run(); -#endif + + // ActiveIssue https://github.com/dotnet/runtime/issues/87924 + if (!OperatingSystem.IsIOS() && !OperatingSystem.IsTvOS() && !OperatingSystem.IsMacCatalyst()) + { + TestLinqExpressions.Run(); + } + TestDefaultInterfaceMethods.Run(); return result; diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/UnitTests.csproj b/src/tests/nativeaot/SmokeTests/UnitTests/UnitTests.csproj index d6411434ff78be..6eac9a88dbd924 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/UnitTests.csproj +++ b/src/tests/nativeaot/SmokeTests/UnitTests/UnitTests.csproj @@ -8,9 +8,6 @@ true $(NoWarn);IL3050;IL3054 - $(DefineConstants);TARGET_IOS - $(DefineConstants);TARGET_TVOS - $(DefineConstants);TARGET_MACCATALYST From 3559afa899bb001bc76cfd34024e258d85e36be3 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 13 Jul 2023 12:26:33 +0200 Subject: [PATCH 103/109] Simplify build process and fix a typo --- .../extra-platforms/runtime-extra-platforms-ioslike.yml | 2 +- .../runtime-extra-platforms-ioslikesimulator.yml | 2 +- eng/pipelines/runtime-ioslike-coreclr.yml | 4 +--- eng/pipelines/runtime-ioslike-mono.yml | 4 +--- src/tests/build.proj | 4 ++-- 5 files changed, 6 insertions(+), 10 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 1124113e8b2d76..c20c8a72988b95 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -113,7 +113,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests timeoutInMinutes: 240 - buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) -rc $(_BuildConfig) + buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 9ce7818fa2a9a1..5b83ba37d817c8 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -119,7 +119,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT_RuntimeTests timeoutInMinutes: 240 - buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) -rc $(_BuildConfig) + buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml diff --git a/eng/pipelines/runtime-ioslike-coreclr.yml b/eng/pipelines/runtime-ioslike-coreclr.yml index 37c5767368a6da..dd827313641741 100644 --- a/eng/pipelines/runtime-ioslike-coreclr.yml +++ b/eng/pipelines/runtime-ioslike-coreclr.yml @@ -1,6 +1,4 @@ -# This is a wrapper yml for `runtime-extra-platforms-ioslike.yml`, which -# has all the iOS/tvOS jobs. This file is essentially so we can have point -# the pipeline in azdo UI to this, and thus avoid any scheduled triggers +# This is a wrapper yml for `runtime-extra-platforms-ioslike.yml`, which runs Native AOT iOS/tvOS runtime tests. trigger: none diff --git a/eng/pipelines/runtime-ioslike-mono.yml b/eng/pipelines/runtime-ioslike-mono.yml index 6735b73819b315..4e32db9c71ede1 100644 --- a/eng/pipelines/runtime-ioslike-mono.yml +++ b/eng/pipelines/runtime-ioslike-mono.yml @@ -1,6 +1,4 @@ -# This is a wrapper yml for `runtime-extra-platforms-ioslike.yml`, which -# has all the iOS/tvOS jobs. This file is essentially so we can have point -# the pipeline in azdo UI to this, and thus avoid any scheduled triggers +# This is a wrapper yml for `runtime-extra-platforms-ioslike.yml`, which runs Mono AOT iOS/tvOS runtime tests. trigger: none diff --git a/src/tests/build.proj b/src/tests/build.proj index 59fcdb0d53082f..af5f69c59bd719 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -499,7 +499,7 @@ <_LinkerFlagsToDrop Include="@(NativeFramework->'-framework %(Identity)')" /> - + @@ -507,7 +507,7 @@ From be76e869f3188ddc38d6c39d9ed5b61847e5d423 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 13 Jul 2023 17:46:24 +0200 Subject: [PATCH 104/109] Test Native AOT perf job --- eng/pipelines/coreclr/perf-non-wasm-jobs.yml | 740 +++++++++---------- eng/pipelines/coreclr/perf.yml | 14 +- 2 files changed, 377 insertions(+), 377 deletions(-) diff --git a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml index b33a9da009603f..55a7f13c5097ca 100644 --- a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml +++ b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml @@ -1,106 +1,106 @@ jobs: -- ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: +# - ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: - # build mono - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 +# # build mono +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/mono/templates/build-job.yml +# runtimeFlavor: mono +# buildConfig: release +# platforms: +# - linux_x64 - # build coreclr and libraries - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml - buildConfig: release - platforms: - - linux_x64 - jobParameters: - testGroup: perf +# # build coreclr and libraries +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml +# buildConfig: release +# platforms: +# - linux_x64 +# jobParameters: +# testGroup: perf -- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: +# - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: - # build coreclr and libraries - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml - buildConfig: release - platforms: - - linux_x64 - - windows_x64 - - windows_x86 - - linux_musl_x64 - jobParameters: - testGroup: perf +# # build coreclr and libraries +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml +# buildConfig: release +# platforms: +# - linux_x64 +# - windows_x64 +# - windows_x86 +# - linux_musl_x64 +# jobParameters: +# testGroup: perf - # build mono for AOT - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - linux_x64 - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: AOT - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml - extraStepsParameters: - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: AOT Mono Artifacts - artifactName: LinuxMonoAOTx64 - archiveExtension: '.tar.gz' - archiveType: tar - tarCompression: gz +# # build mono for AOT +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: release +# runtimeFlavor: mono +# platforms: +# - linux_x64 +# jobParameters: +# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) +# nameSuffix: AOT +# isOfficialBuild: false +# extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml +# extraStepsParameters: +# rootFolder: '$(Build.SourcesDirectory)/artifacts/' +# includeRootFolder: true +# displayName: AOT Mono Artifacts +# artifactName: LinuxMonoAOTx64 +# archiveExtension: '.tar.gz' +# archiveType: tar +# tarCompression: gz - # build mono Android scenarios - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - android_arm64 - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: AndroidMono - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml - extraStepsParameters: - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: Android Mono Artifacts - artifactName: AndroidMonoarm64 - archiveExtension: '.tar.gz' - archiveType: tar - tarCompression: gz +# # build mono Android scenarios +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: release +# runtimeFlavor: mono +# platforms: +# - android_arm64 +# jobParameters: +# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) +# nameSuffix: AndroidMono +# isOfficialBuild: false +# extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml +# extraStepsParameters: +# rootFolder: '$(Build.SourcesDirectory)/artifacts/' +# includeRootFolder: true +# displayName: Android Mono Artifacts +# artifactName: AndroidMonoarm64 +# archiveExtension: '.tar.gz' +# archiveType: tar +# tarCompression: gz - # build mono iOS scenarios - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - ios_arm64 - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: iOSMono - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml - extraStepsParameters: - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: iOS Mono Artifacts - artifactName: iOSMonoarm64 - archiveExtension: '.tar.gz' - archiveType: tar - tarCompression: gz +# # build mono iOS scenarios +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: release +# runtimeFlavor: mono +# platforms: +# - ios_arm64 +# jobParameters: +# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) +# nameSuffix: iOSMono +# isOfficialBuild: false +# extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml +# extraStepsParameters: +# rootFolder: '$(Build.SourcesDirectory)/artifacts/' +# includeRootFolder: true +# displayName: iOS Mono Artifacts +# artifactName: iOSMonoarm64 +# archiveExtension: '.tar.gz' +# archiveType: tar +# tarCompression: gz # build NativeAOT iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml @@ -124,99 +124,99 @@ jobs: archiveType: tar tarCompression: gz - # build mono - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 + # # build mono + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_x64 - # run android scenarios - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - windows_x64 - jobParameters: - testGroup: perf - runtimeType: AndroidMono - projectFile: android_scenarios.proj - runKind: android_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfpixel4a' + # # run android scenarios + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - windows_x64 + # jobParameters: + # testGroup: perf + # runtimeType: AndroidMono + # projectFile: android_scenarios.proj + # runKind: android_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfpixel4a' - # run mono iOS scenarios scenarios - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: perf - runtimeType: iOSMono - projectFile: ios_scenarios.proj - runKind: ios_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfiphone12mini' - iOSLlvmBuild: False - iOSStripSymbols: False + # # run mono iOS scenarios scenarios + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: perf + # runtimeType: iOSMono + # projectFile: ios_scenarios.proj + # runKind: ios_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfiphone12mini' + # iOSLlvmBuild: False + # iOSStripSymbols: False - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: perf - runtimeType: iOSMono - projectFile: ios_scenarios.proj - runKind: ios_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfiphone12mini' - iOSLlvmBuild: False - iOSStripSymbols: True + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: perf + # runtimeType: iOSMono + # projectFile: ios_scenarios.proj + # runKind: ios_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfiphone12mini' + # iOSLlvmBuild: False + # iOSStripSymbols: True - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: perf - runtimeType: iOSMono - projectFile: ios_scenarios.proj - runKind: ios_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfiphone12mini' - iOSLlvmBuild: True - iOSStripSymbols: False + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: perf + # runtimeType: iOSMono + # projectFile: ios_scenarios.proj + # runKind: ios_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfiphone12mini' + # iOSLlvmBuild: True + # iOSStripSymbols: False - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: perf - runtimeType: iOSMono - projectFile: ios_scenarios.proj - runKind: ios_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfiphone12mini' - iOSLlvmBuild: True - iOSStripSymbols: True + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: perf + # runtimeType: iOSMono + # projectFile: ios_scenarios.proj + # runKind: ios_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfiphone12mini' + # iOSLlvmBuild: True + # iOSStripSymbols: True # run NativeAOT iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml @@ -251,201 +251,201 @@ jobs: logicalmachine: 'perfiphone12mini' iOSStripSymbols: True - # run mono microbenchmarks perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - runtimeType: mono - projectFile: microbenchmarks.proj - runKind: micro_mono - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' + # # run mono microbenchmarks perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - linux_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # runtimeType: mono + # projectFile: microbenchmarks.proj + # runKind: micro_mono + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' - # run mono interpreter perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - runtimeType: mono - codeGenType: 'Interpreter' - projectFile: microbenchmarks.proj - runKind: micro_mono - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' + # # run mono interpreter perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - linux_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # runtimeType: mono + # codeGenType: 'Interpreter' + # projectFile: microbenchmarks.proj + # runKind: micro_mono + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' - # run mono aot microbenchmarks perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? - buildConfig: release - runtimeFlavor: aot - platforms: - - linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - runtimeType: mono - codeGenType: 'AOT' - projectFile: microbenchmarks.proj - runKind: micro_mono - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' + # # run mono aot microbenchmarks perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? + # buildConfig: release + # runtimeFlavor: aot + # platforms: + # - linux_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # runtimeType: mono + # codeGenType: 'AOT' + # projectFile: microbenchmarks.proj + # runKind: micro_mono + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' - # run coreclr perftiger microbenchmarks perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - linux_x64 - - windows_x64 - - windows_x86 - - linux_musl_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' + # # run coreclr perftiger microbenchmarks perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - linux_x64 + # - windows_x64 + # - windows_x86 + # - linux_musl_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' - # run coreclr perftiger microbenchmarks no dynamic pgo perf jobs - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - windows_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' - pgoRunType: -NoDynamicPGO + # # run coreclr perftiger microbenchmarks no dynamic pgo perf jobs + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - windows_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' + # pgoRunType: -NoDynamicPGO - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' - pgoRunType: --nodynamicpgo + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - linux_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' + # pgoRunType: --nodynamicpgo - # run coreclr perftiger microbenchmarks physical promotion perf jobs - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - windows_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' - physicalPromotionRunType: -PhysicalPromotion + # # run coreclr perftiger microbenchmarks physical promotion perf jobs + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - windows_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' + # physicalPromotionRunType: -PhysicalPromotion - # run coreclr perfowl microbenchmarks perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - linux_x64 - - windows_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perfowl' + # # run coreclr perfowl microbenchmarks perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - linux_x64 + # - windows_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perfowl' - # run coreclr crossgen perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - linux_x64 - - windows_x64 - - windows_x86 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: crossgen_perf.proj - runKind: crossgen_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perftiger' + # # run coreclr crossgen perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - linux_x64 + # - windows_x64 + # - windows_x86 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: crossgen_perf.proj + # runKind: crossgen_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perftiger' - # build mono runtime packs - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - android_arm64 - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: Mono_Packs - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - extraStepsParameters: - name: MonoRuntimePacks + # # build mono runtime packs + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - android_arm64 + # jobParameters: + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # nameSuffix: Mono_Packs + # isOfficialBuild: false + # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + # extraStepsParameters: + # name: MonoRuntimePacks - # build PerfBDN app - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - ios_arm64 - jobParameters: - dependsOn: - - Build_android_arm64_release_Mono_Packs - buildArgs: -s mono -c $(_BuildConfig) - nameSuffix: PerfBDNApp - isOfficialBuild: false - pool: - vmImage: 'macos-12' - extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-bdn-app.yml - extraStepsParameters: - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: Android BDN App Artifacts - artifactName: PerfBDNAppArm - archiveExtension: '.tar.gz' - archiveType: tar - tarCompression: gz + # # build PerfBDN app + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - ios_arm64 + # jobParameters: + # dependsOn: + # - Build_android_arm64_release_Mono_Packs + # buildArgs: -s mono -c $(_BuildConfig) + # nameSuffix: PerfBDNApp + # isOfficialBuild: false + # pool: + # vmImage: 'macos-12' + # extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-bdn-app.yml + # extraStepsParameters: + # rootFolder: '$(Build.SourcesDirectory)/artifacts/' + # includeRootFolder: true + # displayName: Android BDN App Artifacts + # artifactName: PerfBDNAppArm + # archiveExtension: '.tar.gz' + # archiveType: tar + # tarCompression: gz diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index ae734cbfdaa76d..04e90898d76f75 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -42,12 +42,12 @@ extends: - stage: Build jobs: - - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml - parameters: - collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }} - ${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: - runProfile: 'non-v8' - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: - runProfile: 'v8' + # - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml + # parameters: + # collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }} + # ${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: + # runProfile: 'non-v8' + # ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: + # runProfile: 'v8' - template: /eng/pipelines/coreclr/perf-non-wasm-jobs.yml From df3f62b973b091918ac8ce92010d314edfbe3a5d Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 13 Jul 2023 18:10:05 +0200 Subject: [PATCH 105/109] Update perf build command for Native AOT --- eng/pipelines/coreclr/perf-non-wasm-jobs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml index 55a7f13c5097ca..f956aff5381c10 100644 --- a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml +++ b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml @@ -111,7 +111,7 @@ jobs: platforms: - ios_arm64 jobParameters: - buildArgs: -s clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) + buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) nameSuffix: iOSNativeAOT isOfficialBuild: false extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml From 7b232fbb40c0f1049f60a451a901e119872a4f4d Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 13 Jul 2023 18:12:19 +0200 Subject: [PATCH 106/109] Test Native AOT perf job --- eng/pipelines/coreclr/perf-non-wasm-jobs.yml | 740 +++++++++---------- eng/pipelines/coreclr/perf.yml | 14 +- 2 files changed, 377 insertions(+), 377 deletions(-) diff --git a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml index f956aff5381c10..332492974d95be 100644 --- a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml +++ b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml @@ -1,106 +1,106 @@ jobs: -# - ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: +- ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: -# # build mono -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/mono/templates/build-job.yml -# runtimeFlavor: mono -# buildConfig: release -# platforms: -# - linux_x64 + # build mono + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_x64 -# # build coreclr and libraries -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml -# buildConfig: release -# platforms: -# - linux_x64 -# jobParameters: -# testGroup: perf + # build coreclr and libraries + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml + buildConfig: release + platforms: + - linux_x64 + jobParameters: + testGroup: perf -# - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: +- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: -# # build coreclr and libraries -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml -# buildConfig: release -# platforms: -# - linux_x64 -# - windows_x64 -# - windows_x86 -# - linux_musl_x64 -# jobParameters: -# testGroup: perf + # build coreclr and libraries + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml + buildConfig: release + platforms: + - linux_x64 + - windows_x64 + - windows_x86 + - linux_musl_x64 + jobParameters: + testGroup: perf -# # build mono for AOT -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: release -# runtimeFlavor: mono -# platforms: -# - linux_x64 -# jobParameters: -# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) -# nameSuffix: AOT -# isOfficialBuild: false -# extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml -# extraStepsParameters: -# rootFolder: '$(Build.SourcesDirectory)/artifacts/' -# includeRootFolder: true -# displayName: AOT Mono Artifacts -# artifactName: LinuxMonoAOTx64 -# archiveExtension: '.tar.gz' -# archiveType: tar -# tarCompression: gz + # build mono for AOT + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - linux_x64 + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: AOT + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: AOT Mono Artifacts + artifactName: LinuxMonoAOTx64 + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz -# # build mono Android scenarios -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: release -# runtimeFlavor: mono -# platforms: -# - android_arm64 -# jobParameters: -# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) -# nameSuffix: AndroidMono -# isOfficialBuild: false -# extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml -# extraStepsParameters: -# rootFolder: '$(Build.SourcesDirectory)/artifacts/' -# includeRootFolder: true -# displayName: Android Mono Artifacts -# artifactName: AndroidMonoarm64 -# archiveExtension: '.tar.gz' -# archiveType: tar -# tarCompression: gz + # build mono Android scenarios + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - android_arm64 + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: AndroidMono + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: Android Mono Artifacts + artifactName: AndroidMonoarm64 + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz -# # build mono iOS scenarios -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: release -# runtimeFlavor: mono -# platforms: -# - ios_arm64 -# jobParameters: -# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) -# nameSuffix: iOSMono -# isOfficialBuild: false -# extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml -# extraStepsParameters: -# rootFolder: '$(Build.SourcesDirectory)/artifacts/' -# includeRootFolder: true -# displayName: iOS Mono Artifacts -# artifactName: iOSMonoarm64 -# archiveExtension: '.tar.gz' -# archiveType: tar -# tarCompression: gz + # build mono iOS scenarios + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - ios_arm64 + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: iOSMono + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: iOS Mono Artifacts + artifactName: iOSMonoarm64 + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz # build NativeAOT iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml @@ -124,99 +124,99 @@ jobs: archiveType: tar tarCompression: gz - # # build mono - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - linux_x64 + # build mono + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_x64 - # # run android scenarios - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - windows_x64 - # jobParameters: - # testGroup: perf - # runtimeType: AndroidMono - # projectFile: android_scenarios.proj - # runKind: android_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfpixel4a' + # run android scenarios + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - windows_x64 + jobParameters: + testGroup: perf + runtimeType: AndroidMono + projectFile: android_scenarios.proj + runKind: android_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfpixel4a' - # # run mono iOS scenarios scenarios - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: perf - # runtimeType: iOSMono - # projectFile: ios_scenarios.proj - # runKind: ios_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfiphone12mini' - # iOSLlvmBuild: False - # iOSStripSymbols: False + # run mono iOS scenarios scenarios + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: perf + runtimeType: iOSMono + projectFile: ios_scenarios.proj + runKind: ios_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfiphone12mini' + iOSLlvmBuild: False + iOSStripSymbols: False - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: perf - # runtimeType: iOSMono - # projectFile: ios_scenarios.proj - # runKind: ios_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfiphone12mini' - # iOSLlvmBuild: False - # iOSStripSymbols: True + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: perf + runtimeType: iOSMono + projectFile: ios_scenarios.proj + runKind: ios_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfiphone12mini' + iOSLlvmBuild: False + iOSStripSymbols: True - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: perf - # runtimeType: iOSMono - # projectFile: ios_scenarios.proj - # runKind: ios_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfiphone12mini' - # iOSLlvmBuild: True - # iOSStripSymbols: False + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: perf + runtimeType: iOSMono + projectFile: ios_scenarios.proj + runKind: ios_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfiphone12mini' + iOSLlvmBuild: True + iOSStripSymbols: False - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: perf - # runtimeType: iOSMono - # projectFile: ios_scenarios.proj - # runKind: ios_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfiphone12mini' - # iOSLlvmBuild: True - # iOSStripSymbols: True + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: perf + runtimeType: iOSMono + projectFile: ios_scenarios.proj + runKind: ios_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfiphone12mini' + iOSLlvmBuild: True + iOSStripSymbols: True # run NativeAOT iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml @@ -251,201 +251,201 @@ jobs: logicalmachine: 'perfiphone12mini' iOSStripSymbols: True - # # run mono microbenchmarks perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - linux_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # runtimeType: mono - # projectFile: microbenchmarks.proj - # runKind: micro_mono - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' + # run mono microbenchmarks perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + runtimeType: mono + projectFile: microbenchmarks.proj + runKind: micro_mono + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' - # # run mono interpreter perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - linux_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # runtimeType: mono - # codeGenType: 'Interpreter' - # projectFile: microbenchmarks.proj - # runKind: micro_mono - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' + # run mono interpreter perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + runtimeType: mono + codeGenType: 'Interpreter' + projectFile: microbenchmarks.proj + runKind: micro_mono + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' - # # run mono aot microbenchmarks perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? - # buildConfig: release - # runtimeFlavor: aot - # platforms: - # - linux_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # runtimeType: mono - # codeGenType: 'AOT' - # projectFile: microbenchmarks.proj - # runKind: micro_mono - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' + # run mono aot microbenchmarks perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? + buildConfig: release + runtimeFlavor: aot + platforms: + - linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + runtimeType: mono + codeGenType: 'AOT' + projectFile: microbenchmarks.proj + runKind: micro_mono + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' - # # run coreclr perftiger microbenchmarks perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - linux_x64 - # - windows_x64 - # - windows_x86 - # - linux_musl_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' + # run coreclr perftiger microbenchmarks perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - linux_x64 + - windows_x64 + - windows_x86 + - linux_musl_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' - # # run coreclr perftiger microbenchmarks no dynamic pgo perf jobs - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - windows_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' - # pgoRunType: -NoDynamicPGO + # run coreclr perftiger microbenchmarks no dynamic pgo perf jobs + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - windows_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' + pgoRunType: -NoDynamicPGO - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - linux_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' - # pgoRunType: --nodynamicpgo + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' + pgoRunType: --nodynamicpgo - # # run coreclr perftiger microbenchmarks physical promotion perf jobs - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - windows_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' - # physicalPromotionRunType: -PhysicalPromotion + # run coreclr perftiger microbenchmarks physical promotion perf jobs + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - windows_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' + physicalPromotionRunType: -PhysicalPromotion - # # run coreclr perfowl microbenchmarks perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - linux_x64 - # - windows_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perfowl' + # run coreclr perfowl microbenchmarks perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - linux_x64 + - windows_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perfowl' - # # run coreclr crossgen perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - linux_x64 - # - windows_x64 - # - windows_x86 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: crossgen_perf.proj - # runKind: crossgen_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perftiger' + # run coreclr crossgen perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - linux_x64 + - windows_x64 + - windows_x86 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: crossgen_perf.proj + runKind: crossgen_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perftiger' - # # build mono runtime packs - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - android_arm64 - # jobParameters: - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # nameSuffix: Mono_Packs - # isOfficialBuild: false - # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - # extraStepsParameters: - # name: MonoRuntimePacks + # build mono runtime packs + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - android_arm64 + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: Mono_Packs + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: MonoRuntimePacks - # # build PerfBDN app - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - ios_arm64 - # jobParameters: - # dependsOn: - # - Build_android_arm64_release_Mono_Packs - # buildArgs: -s mono -c $(_BuildConfig) - # nameSuffix: PerfBDNApp - # isOfficialBuild: false - # pool: - # vmImage: 'macos-12' - # extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-bdn-app.yml - # extraStepsParameters: - # rootFolder: '$(Build.SourcesDirectory)/artifacts/' - # includeRootFolder: true - # displayName: Android BDN App Artifacts - # artifactName: PerfBDNAppArm - # archiveExtension: '.tar.gz' - # archiveType: tar - # tarCompression: gz + # build PerfBDN app + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - ios_arm64 + jobParameters: + dependsOn: + - Build_android_arm64_release_Mono_Packs + buildArgs: -s mono -c $(_BuildConfig) + nameSuffix: PerfBDNApp + isOfficialBuild: false + pool: + vmImage: 'macos-12' + extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-bdn-app.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: Android BDN App Artifacts + artifactName: PerfBDNAppArm + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 04e90898d76f75..ae734cbfdaa76d 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -42,12 +42,12 @@ extends: - stage: Build jobs: - # - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml - # parameters: - # collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }} - # ${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: - # runProfile: 'non-v8' - # ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: - # runProfile: 'v8' + - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml + parameters: + collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }} + ${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: + runProfile: 'non-v8' + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: + runProfile: 'v8' - template: /eng/pipelines/coreclr/perf-non-wasm-jobs.yml From ac2b9a3ec721715f1447599efe3d99bf60aad27c Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 13 Jul 2023 18:59:34 +0200 Subject: [PATCH 107/109] Update IlcToolsPath to use cross-build ilc path --- src/mono/sample/iOS-NativeAOT/Program.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mono/sample/iOS-NativeAOT/Program.csproj b/src/mono/sample/iOS-NativeAOT/Program.csproj index fcad38c4512747..dffdc6286adc37 100644 --- a/src/mono/sample/iOS-NativeAOT/Program.csproj +++ b/src/mono/sample/iOS-NativeAOT/Program.csproj @@ -46,8 +46,8 @@ - $(CoreCLRArtifactsPath) - $(IlcPath) + $(CoreCLRILCompilerDir) + $(CoreCLRCrossILCompilerDir) $(CoreCLRAotSdkDir) $(LibrariesAllBinArtifactsPath) $(LibrariesAllBinArtifactsPath) From f5e8fba6a925dbcece08cfe76f3c4d587b84a835 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 13 Jul 2023 19:00:26 +0200 Subject: [PATCH 108/109] Test Native AOT perf job --- eng/pipelines/coreclr/perf-non-wasm-jobs.yml | 740 +++++++++---------- eng/pipelines/coreclr/perf.yml | 14 +- src/mono/sample/iOS-NativeAOT/Program.csproj | 3 +- 3 files changed, 378 insertions(+), 379 deletions(-) diff --git a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml index 332492974d95be..f956aff5381c10 100644 --- a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml +++ b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml @@ -1,106 +1,106 @@ jobs: -- ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: +# - ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: - # build mono - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 +# # build mono +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/mono/templates/build-job.yml +# runtimeFlavor: mono +# buildConfig: release +# platforms: +# - linux_x64 - # build coreclr and libraries - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml - buildConfig: release - platforms: - - linux_x64 - jobParameters: - testGroup: perf +# # build coreclr and libraries +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml +# buildConfig: release +# platforms: +# - linux_x64 +# jobParameters: +# testGroup: perf -- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: +# - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: - # build coreclr and libraries - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml - buildConfig: release - platforms: - - linux_x64 - - windows_x64 - - windows_x86 - - linux_musl_x64 - jobParameters: - testGroup: perf +# # build coreclr and libraries +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml +# buildConfig: release +# platforms: +# - linux_x64 +# - windows_x64 +# - windows_x86 +# - linux_musl_x64 +# jobParameters: +# testGroup: perf - # build mono for AOT - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - linux_x64 - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: AOT - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml - extraStepsParameters: - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: AOT Mono Artifacts - artifactName: LinuxMonoAOTx64 - archiveExtension: '.tar.gz' - archiveType: tar - tarCompression: gz +# # build mono for AOT +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: release +# runtimeFlavor: mono +# platforms: +# - linux_x64 +# jobParameters: +# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) +# nameSuffix: AOT +# isOfficialBuild: false +# extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml +# extraStepsParameters: +# rootFolder: '$(Build.SourcesDirectory)/artifacts/' +# includeRootFolder: true +# displayName: AOT Mono Artifacts +# artifactName: LinuxMonoAOTx64 +# archiveExtension: '.tar.gz' +# archiveType: tar +# tarCompression: gz - # build mono Android scenarios - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - android_arm64 - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: AndroidMono - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml - extraStepsParameters: - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: Android Mono Artifacts - artifactName: AndroidMonoarm64 - archiveExtension: '.tar.gz' - archiveType: tar - tarCompression: gz +# # build mono Android scenarios +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: release +# runtimeFlavor: mono +# platforms: +# - android_arm64 +# jobParameters: +# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) +# nameSuffix: AndroidMono +# isOfficialBuild: false +# extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml +# extraStepsParameters: +# rootFolder: '$(Build.SourcesDirectory)/artifacts/' +# includeRootFolder: true +# displayName: Android Mono Artifacts +# artifactName: AndroidMonoarm64 +# archiveExtension: '.tar.gz' +# archiveType: tar +# tarCompression: gz - # build mono iOS scenarios - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - ios_arm64 - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: iOSMono - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml - extraStepsParameters: - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: iOS Mono Artifacts - artifactName: iOSMonoarm64 - archiveExtension: '.tar.gz' - archiveType: tar - tarCompression: gz +# # build mono iOS scenarios +# - template: /eng/pipelines/common/platform-matrix.yml +# parameters: +# jobTemplate: /eng/pipelines/common/global-build-job.yml +# buildConfig: release +# runtimeFlavor: mono +# platforms: +# - ios_arm64 +# jobParameters: +# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) +# nameSuffix: iOSMono +# isOfficialBuild: false +# extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml +# extraStepsParameters: +# rootFolder: '$(Build.SourcesDirectory)/artifacts/' +# includeRootFolder: true +# displayName: iOS Mono Artifacts +# artifactName: iOSMonoarm64 +# archiveExtension: '.tar.gz' +# archiveType: tar +# tarCompression: gz # build NativeAOT iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml @@ -124,99 +124,99 @@ jobs: archiveType: tar tarCompression: gz - # build mono - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 + # # build mono + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_x64 - # run android scenarios - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - windows_x64 - jobParameters: - testGroup: perf - runtimeType: AndroidMono - projectFile: android_scenarios.proj - runKind: android_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfpixel4a' + # # run android scenarios + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - windows_x64 + # jobParameters: + # testGroup: perf + # runtimeType: AndroidMono + # projectFile: android_scenarios.proj + # runKind: android_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfpixel4a' - # run mono iOS scenarios scenarios - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: perf - runtimeType: iOSMono - projectFile: ios_scenarios.proj - runKind: ios_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfiphone12mini' - iOSLlvmBuild: False - iOSStripSymbols: False + # # run mono iOS scenarios scenarios + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: perf + # runtimeType: iOSMono + # projectFile: ios_scenarios.proj + # runKind: ios_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfiphone12mini' + # iOSLlvmBuild: False + # iOSStripSymbols: False - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: perf - runtimeType: iOSMono - projectFile: ios_scenarios.proj - runKind: ios_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfiphone12mini' - iOSLlvmBuild: False - iOSStripSymbols: True + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: perf + # runtimeType: iOSMono + # projectFile: ios_scenarios.proj + # runKind: ios_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfiphone12mini' + # iOSLlvmBuild: False + # iOSStripSymbols: True - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: perf - runtimeType: iOSMono - projectFile: ios_scenarios.proj - runKind: ios_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfiphone12mini' - iOSLlvmBuild: True - iOSStripSymbols: False + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: perf + # runtimeType: iOSMono + # projectFile: ios_scenarios.proj + # runKind: ios_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfiphone12mini' + # iOSLlvmBuild: True + # iOSStripSymbols: False - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - osx_x64 - jobParameters: - testGroup: perf - runtimeType: iOSMono - projectFile: ios_scenarios.proj - runKind: ios_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perfiphone12mini' - iOSLlvmBuild: True - iOSStripSymbols: True + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - osx_x64 + # jobParameters: + # testGroup: perf + # runtimeType: iOSMono + # projectFile: ios_scenarios.proj + # runKind: ios_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perfiphone12mini' + # iOSLlvmBuild: True + # iOSStripSymbols: True # run NativeAOT iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml @@ -251,201 +251,201 @@ jobs: logicalmachine: 'perfiphone12mini' iOSStripSymbols: True - # run mono microbenchmarks perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - runtimeType: mono - projectFile: microbenchmarks.proj - runKind: micro_mono - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' + # # run mono microbenchmarks perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - linux_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # runtimeType: mono + # projectFile: microbenchmarks.proj + # runKind: micro_mono + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' - # run mono interpreter perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - runtimeType: mono - codeGenType: 'Interpreter' - projectFile: microbenchmarks.proj - runKind: micro_mono - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' + # # run mono interpreter perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - linux_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # runtimeType: mono + # codeGenType: 'Interpreter' + # projectFile: microbenchmarks.proj + # runKind: micro_mono + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' - # run mono aot microbenchmarks perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? - buildConfig: release - runtimeFlavor: aot - platforms: - - linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - runtimeType: mono - codeGenType: 'AOT' - projectFile: microbenchmarks.proj - runKind: micro_mono - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' + # # run mono aot microbenchmarks perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? + # buildConfig: release + # runtimeFlavor: aot + # platforms: + # - linux_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # runtimeType: mono + # codeGenType: 'AOT' + # projectFile: microbenchmarks.proj + # runKind: micro_mono + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' - # run coreclr perftiger microbenchmarks perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - linux_x64 - - windows_x64 - - windows_x86 - - linux_musl_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' + # # run coreclr perftiger microbenchmarks perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - linux_x64 + # - windows_x64 + # - windows_x86 + # - linux_musl_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' - # run coreclr perftiger microbenchmarks no dynamic pgo perf jobs - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - windows_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' - pgoRunType: -NoDynamicPGO + # # run coreclr perftiger microbenchmarks no dynamic pgo perf jobs + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - windows_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' + # pgoRunType: -NoDynamicPGO - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - linux_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' - pgoRunType: --nodynamicpgo + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - linux_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' + # pgoRunType: --nodynamicpgo - # run coreclr perftiger microbenchmarks physical promotion perf jobs - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - windows_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perftiger' - physicalPromotionRunType: -PhysicalPromotion + # # run coreclr perftiger microbenchmarks physical promotion perf jobs + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - windows_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perftiger' + # physicalPromotionRunType: -PhysicalPromotion - # run coreclr perfowl microbenchmarks perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - linux_x64 - - windows_x64 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: microbenchmarks.proj - runKind: micro - runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - logicalmachine: 'perfowl' + # # run coreclr perfowl microbenchmarks perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - linux_x64 + # - windows_x64 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: microbenchmarks.proj + # runKind: micro + # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + # logicalmachine: 'perfowl' - # run coreclr crossgen perf job - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - buildConfig: release - runtimeFlavor: coreclr - platforms: - - linux_x64 - - windows_x64 - - windows_x86 - jobParameters: - testGroup: perf - liveLibrariesBuildConfig: Release - projectFile: crossgen_perf.proj - runKind: crossgen_scenarios - runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - logicalmachine: 'perftiger' + # # run coreclr crossgen perf job + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + # buildConfig: release + # runtimeFlavor: coreclr + # platforms: + # - linux_x64 + # - windows_x64 + # - windows_x86 + # jobParameters: + # testGroup: perf + # liveLibrariesBuildConfig: Release + # projectFile: crossgen_perf.proj + # runKind: crossgen_scenarios + # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + # logicalmachine: 'perftiger' - # build mono runtime packs - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - android_arm64 - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: Mono_Packs - isOfficialBuild: false - extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - extraStepsParameters: - name: MonoRuntimePacks + # # build mono runtime packs + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - android_arm64 + # jobParameters: + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # nameSuffix: Mono_Packs + # isOfficialBuild: false + # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + # extraStepsParameters: + # name: MonoRuntimePacks - # build PerfBDN app - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - ios_arm64 - jobParameters: - dependsOn: - - Build_android_arm64_release_Mono_Packs - buildArgs: -s mono -c $(_BuildConfig) - nameSuffix: PerfBDNApp - isOfficialBuild: false - pool: - vmImage: 'macos-12' - extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-bdn-app.yml - extraStepsParameters: - rootFolder: '$(Build.SourcesDirectory)/artifacts/' - includeRootFolder: true - displayName: Android BDN App Artifacts - artifactName: PerfBDNAppArm - archiveExtension: '.tar.gz' - archiveType: tar - tarCompression: gz + # # build PerfBDN app + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - ios_arm64 + # jobParameters: + # dependsOn: + # - Build_android_arm64_release_Mono_Packs + # buildArgs: -s mono -c $(_BuildConfig) + # nameSuffix: PerfBDNApp + # isOfficialBuild: false + # pool: + # vmImage: 'macos-12' + # extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-bdn-app.yml + # extraStepsParameters: + # rootFolder: '$(Build.SourcesDirectory)/artifacts/' + # includeRootFolder: true + # displayName: Android BDN App Artifacts + # artifactName: PerfBDNAppArm + # archiveExtension: '.tar.gz' + # archiveType: tar + # tarCompression: gz diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index ae734cbfdaa76d..04e90898d76f75 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -42,12 +42,12 @@ extends: - stage: Build jobs: - - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml - parameters: - collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }} - ${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: - runProfile: 'non-v8' - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: - runProfile: 'v8' + # - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml + # parameters: + # collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }} + # ${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: + # runProfile: 'non-v8' + # ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: + # runProfile: 'v8' - template: /eng/pipelines/coreclr/perf-non-wasm-jobs.yml diff --git a/src/mono/sample/iOS-NativeAOT/Program.csproj b/src/mono/sample/iOS-NativeAOT/Program.csproj index dffdc6286adc37..7a608661b4b0f7 100644 --- a/src/mono/sample/iOS-NativeAOT/Program.csproj +++ b/src/mono/sample/iOS-NativeAOT/Program.csproj @@ -46,8 +46,7 @@ - $(CoreCLRILCompilerDir) - $(CoreCLRCrossILCompilerDir) + $(CoreCLRCrossILCompilerDir) $(CoreCLRAotSdkDir) $(LibrariesAllBinArtifactsPath) $(LibrariesAllBinArtifactsPath) From 30049904417158d6e41213750ff092274479d776 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 14 Jul 2023 10:51:51 +0200 Subject: [PATCH 109/109] Use /p:BuildNativeAOTRuntimePack=true to pick up NativeAOT assets instead of CoreCLR --- eng/liveBuilds.targets | 2 +- eng/pipelines/coreclr/perf-non-wasm-jobs.yml | 740 +++++++++--------- eng/pipelines/coreclr/perf.yml | 14 +- .../runtime-extra-platforms-ioslike.yml | 2 +- ...ntime-extra-platforms-ioslikesimulator.yml | 2 +- 5 files changed, 380 insertions(+), 380 deletions(-) diff --git a/eng/liveBuilds.targets b/eng/liveBuilds.targets index f4f32211fd5036..3830816fc037a2 100644 --- a/eng/liveBuilds.targets +++ b/eng/liveBuilds.targets @@ -128,7 +128,7 @@ - + diff --git a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml index f956aff5381c10..332492974d95be 100644 --- a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml +++ b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml @@ -1,106 +1,106 @@ jobs: -# - ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: +- ${{ if and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: -# # build mono -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/mono/templates/build-job.yml -# runtimeFlavor: mono -# buildConfig: release -# platforms: -# - linux_x64 + # build mono + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_x64 -# # build coreclr and libraries -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml -# buildConfig: release -# platforms: -# - linux_x64 -# jobParameters: -# testGroup: perf + # build coreclr and libraries + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml + buildConfig: release + platforms: + - linux_x64 + jobParameters: + testGroup: perf -# - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: +- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: -# # build coreclr and libraries -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml -# buildConfig: release -# platforms: -# - linux_x64 -# - windows_x64 -# - windows_x86 -# - linux_musl_x64 -# jobParameters: -# testGroup: perf + # build coreclr and libraries + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml + buildConfig: release + platforms: + - linux_x64 + - windows_x64 + - windows_x86 + - linux_musl_x64 + jobParameters: + testGroup: perf -# # build mono for AOT -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: release -# runtimeFlavor: mono -# platforms: -# - linux_x64 -# jobParameters: -# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) -# nameSuffix: AOT -# isOfficialBuild: false -# extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml -# extraStepsParameters: -# rootFolder: '$(Build.SourcesDirectory)/artifacts/' -# includeRootFolder: true -# displayName: AOT Mono Artifacts -# artifactName: LinuxMonoAOTx64 -# archiveExtension: '.tar.gz' -# archiveType: tar -# tarCompression: gz + # build mono for AOT + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - linux_x64 + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: AOT + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: AOT Mono Artifacts + artifactName: LinuxMonoAOTx64 + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz -# # build mono Android scenarios -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: release -# runtimeFlavor: mono -# platforms: -# - android_arm64 -# jobParameters: -# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) -# nameSuffix: AndroidMono -# isOfficialBuild: false -# extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml -# extraStepsParameters: -# rootFolder: '$(Build.SourcesDirectory)/artifacts/' -# includeRootFolder: true -# displayName: Android Mono Artifacts -# artifactName: AndroidMonoarm64 -# archiveExtension: '.tar.gz' -# archiveType: tar -# tarCompression: gz + # build mono Android scenarios + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - android_arm64 + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: AndroidMono + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: Android Mono Artifacts + artifactName: AndroidMonoarm64 + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz -# # build mono iOS scenarios -# - template: /eng/pipelines/common/platform-matrix.yml -# parameters: -# jobTemplate: /eng/pipelines/common/global-build-job.yml -# buildConfig: release -# runtimeFlavor: mono -# platforms: -# - ios_arm64 -# jobParameters: -# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) -# nameSuffix: iOSMono -# isOfficialBuild: false -# extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml -# extraStepsParameters: -# rootFolder: '$(Build.SourcesDirectory)/artifacts/' -# includeRootFolder: true -# displayName: iOS Mono Artifacts -# artifactName: iOSMonoarm64 -# archiveExtension: '.tar.gz' -# archiveType: tar -# tarCompression: gz + # build mono iOS scenarios + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - ios_arm64 + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: iOSMono + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: iOS Mono Artifacts + artifactName: iOSMonoarm64 + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz # build NativeAOT iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml @@ -124,99 +124,99 @@ jobs: archiveType: tar tarCompression: gz - # # build mono - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - linux_x64 + # build mono + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_x64 - # # run android scenarios - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - windows_x64 - # jobParameters: - # testGroup: perf - # runtimeType: AndroidMono - # projectFile: android_scenarios.proj - # runKind: android_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfpixel4a' + # run android scenarios + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - windows_x64 + jobParameters: + testGroup: perf + runtimeType: AndroidMono + projectFile: android_scenarios.proj + runKind: android_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfpixel4a' - # # run mono iOS scenarios scenarios - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: perf - # runtimeType: iOSMono - # projectFile: ios_scenarios.proj - # runKind: ios_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfiphone12mini' - # iOSLlvmBuild: False - # iOSStripSymbols: False + # run mono iOS scenarios scenarios + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: perf + runtimeType: iOSMono + projectFile: ios_scenarios.proj + runKind: ios_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfiphone12mini' + iOSLlvmBuild: False + iOSStripSymbols: False - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: perf - # runtimeType: iOSMono - # projectFile: ios_scenarios.proj - # runKind: ios_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfiphone12mini' - # iOSLlvmBuild: False - # iOSStripSymbols: True + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: perf + runtimeType: iOSMono + projectFile: ios_scenarios.proj + runKind: ios_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfiphone12mini' + iOSLlvmBuild: False + iOSStripSymbols: True - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: perf - # runtimeType: iOSMono - # projectFile: ios_scenarios.proj - # runKind: ios_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfiphone12mini' - # iOSLlvmBuild: True - # iOSStripSymbols: False + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: perf + runtimeType: iOSMono + projectFile: ios_scenarios.proj + runKind: ios_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfiphone12mini' + iOSLlvmBuild: True + iOSStripSymbols: False - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - osx_x64 - # jobParameters: - # testGroup: perf - # runtimeType: iOSMono - # projectFile: ios_scenarios.proj - # runKind: ios_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perfiphone12mini' - # iOSLlvmBuild: True - # iOSStripSymbols: True + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - osx_x64 + jobParameters: + testGroup: perf + runtimeType: iOSMono + projectFile: ios_scenarios.proj + runKind: ios_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perfiphone12mini' + iOSLlvmBuild: True + iOSStripSymbols: True # run NativeAOT iOS scenarios - template: /eng/pipelines/common/platform-matrix.yml @@ -251,201 +251,201 @@ jobs: logicalmachine: 'perfiphone12mini' iOSStripSymbols: True - # # run mono microbenchmarks perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - linux_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # runtimeType: mono - # projectFile: microbenchmarks.proj - # runKind: micro_mono - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' + # run mono microbenchmarks perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + runtimeType: mono + projectFile: microbenchmarks.proj + runKind: micro_mono + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' - # # run mono interpreter perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - linux_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # runtimeType: mono - # codeGenType: 'Interpreter' - # projectFile: microbenchmarks.proj - # runKind: micro_mono - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' + # run mono interpreter perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + runtimeType: mono + codeGenType: 'Interpreter' + projectFile: microbenchmarks.proj + runKind: micro_mono + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' - # # run mono aot microbenchmarks perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? - # buildConfig: release - # runtimeFlavor: aot - # platforms: - # - linux_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # runtimeType: mono - # codeGenType: 'AOT' - # projectFile: microbenchmarks.proj - # runKind: micro_mono - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' + # run mono aot microbenchmarks perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml # NOTE: should we move this file out of coreclr tempelates because it contains mono jobs? + buildConfig: release + runtimeFlavor: aot + platforms: + - linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + runtimeType: mono + codeGenType: 'AOT' + projectFile: microbenchmarks.proj + runKind: micro_mono + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' - # # run coreclr perftiger microbenchmarks perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - linux_x64 - # - windows_x64 - # - windows_x86 - # - linux_musl_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' + # run coreclr perftiger microbenchmarks perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - linux_x64 + - windows_x64 + - windows_x86 + - linux_musl_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' - # # run coreclr perftiger microbenchmarks no dynamic pgo perf jobs - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - windows_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' - # pgoRunType: -NoDynamicPGO + # run coreclr perftiger microbenchmarks no dynamic pgo perf jobs + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - windows_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' + pgoRunType: -NoDynamicPGO - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - linux_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' - # pgoRunType: --nodynamicpgo + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - linux_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' + pgoRunType: --nodynamicpgo - # # run coreclr perftiger microbenchmarks physical promotion perf jobs - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - windows_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perftiger' - # physicalPromotionRunType: -PhysicalPromotion + # run coreclr perftiger microbenchmarks physical promotion perf jobs + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - windows_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perftiger' + physicalPromotionRunType: -PhysicalPromotion - # # run coreclr perfowl microbenchmarks perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - linux_x64 - # - windows_x64 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: microbenchmarks.proj - # runKind: micro - # runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml - # logicalmachine: 'perfowl' + # run coreclr perfowl microbenchmarks perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - linux_x64 + - windows_x64 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: microbenchmarks.proj + runKind: micro + runJobTemplate: /eng/pipelines/coreclr/templates/run-performance-job.yml + logicalmachine: 'perfowl' - # # run coreclr crossgen perf job - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml - # buildConfig: release - # runtimeFlavor: coreclr - # platforms: - # - linux_x64 - # - windows_x64 - # - windows_x86 - # jobParameters: - # testGroup: perf - # liveLibrariesBuildConfig: Release - # projectFile: crossgen_perf.proj - # runKind: crossgen_scenarios - # runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml - # logicalmachine: 'perftiger' + # run coreclr crossgen perf job + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml + buildConfig: release + runtimeFlavor: coreclr + platforms: + - linux_x64 + - windows_x64 + - windows_x86 + jobParameters: + testGroup: perf + liveLibrariesBuildConfig: Release + projectFile: crossgen_perf.proj + runKind: crossgen_scenarios + runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml + logicalmachine: 'perftiger' - # # build mono runtime packs - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - android_arm64 - # jobParameters: - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # nameSuffix: Mono_Packs - # isOfficialBuild: false - # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - # extraStepsParameters: - # name: MonoRuntimePacks + # build mono runtime packs + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - android_arm64 + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: Mono_Packs + isOfficialBuild: false + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: MonoRuntimePacks - # # build PerfBDN app - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - ios_arm64 - # jobParameters: - # dependsOn: - # - Build_android_arm64_release_Mono_Packs - # buildArgs: -s mono -c $(_BuildConfig) - # nameSuffix: PerfBDNApp - # isOfficialBuild: false - # pool: - # vmImage: 'macos-12' - # extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-bdn-app.yml - # extraStepsParameters: - # rootFolder: '$(Build.SourcesDirectory)/artifacts/' - # includeRootFolder: true - # displayName: Android BDN App Artifacts - # artifactName: PerfBDNAppArm - # archiveExtension: '.tar.gz' - # archiveType: tar - # tarCompression: gz + # build PerfBDN app + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - ios_arm64 + jobParameters: + dependsOn: + - Build_android_arm64_release_Mono_Packs + buildArgs: -s mono -c $(_BuildConfig) + nameSuffix: PerfBDNApp + isOfficialBuild: false + pool: + vmImage: 'macos-12' + extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-bdn-app.yml + extraStepsParameters: + rootFolder: '$(Build.SourcesDirectory)/artifacts/' + includeRootFolder: true + displayName: Android BDN App Artifacts + artifactName: PerfBDNAppArm + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml index 04e90898d76f75..ae734cbfdaa76d 100644 --- a/eng/pipelines/coreclr/perf.yml +++ b/eng/pipelines/coreclr/perf.yml @@ -42,12 +42,12 @@ extends: - stage: Build jobs: - # - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml - # parameters: - # collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }} - # ${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: - # runProfile: 'non-v8' - # ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: - # runProfile: 'v8' + - template: /eng/pipelines/coreclr/perf-wasm-jobs.yml + parameters: + collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }} + ${{ and(ne(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'Schedule')) }}: + runProfile: 'non-v8' + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}: + runProfile: 'v8' - template: /eng/pipelines/coreclr/perf-non-wasm-jobs.yml diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index c20c8a72988b95..6145d3ed0c71fb 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -122,5 +122,5 @@ jobs: extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml extraStepsParameters: creator: dotnet-bot - testBuildArgs: tree nativeaot/SmokeTests/UnitTests + testBuildArgs: tree nativeaot/SmokeTests/UnitTests /p:BuildNativeAOTRuntimePack=true testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 5b83ba37d817c8..d7643974c4e3ce 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -128,5 +128,5 @@ jobs: extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml extraStepsParameters: creator: dotnet-bot - testBuildArgs: tree nativeaot/SmokeTests/UnitTests + testBuildArgs: tree nativeaot/SmokeTests/UnitTests /p:BuildNativeAOTRuntimePack=true testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig)