From 74481afae06cb7a0ad3a445b5e6ec9c4f62b8a72 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 19 Jun 2023 16:40:08 +0200 Subject: [PATCH 01/87] Initial commit --- Directory.Build.props | 2 ++ eng/testing/tests.ioslike.targets | 2 +- eng/testing/tests.mobile.targets | 15 ++++++++++++- src/libraries/tests.proj | 11 ++++++++++ src/mono/msbuild/apple/build/AppleBuild.props | 5 ++++- .../msbuild/apple/build/AppleBuild.targets | 22 ++++++++++++++++--- .../apple/data/ProxyProjectForAOTOnHelix.proj | 2 +- .../msbuild/common/LibraryBuilder.targets | 2 +- .../iOS-NativeAOT/Directory.Build.props | 10 +++++++++ .../iOS-NativeAOT/Directory.Build.targets | 3 +++ src/mono/sample/iOS-NativeAOT/Program.csproj | 9 ++++---- src/mono/sample/iOS/Directory.Build.props | 10 +++++++++ src/mono/sample/iOS/Directory.Build.targets | 3 +++ src/mono/sample/iOS/Program.csproj | 10 ++++----- 14 files changed, 88 insertions(+), 18 deletions(-) create mode 100644 src/mono/sample/iOS-NativeAOT/Directory.Build.props create mode 100644 src/mono/sample/iOS-NativeAOT/Directory.Build.targets create mode 100644 src/mono/sample/iOS/Directory.Build.props create mode 100644 src/mono/sample/iOS/Directory.Build.targets diff --git a/Directory.Build.props b/Directory.Build.props index 144752e8d9f9c..d11393ce07a16 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -174,6 +174,8 @@ $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(RuntimeConfiguration)')) $(CoreCLRToolPath) + $([MSBuild]::NormalizeDirectory('$(CoreClrProjectRoot)', 'nativeaot', 'BuildIntegration')) + $(WASMTIME_PATH) $([MSBuild]::NormalizeDirectory($(ArtifactsObjDir), 'wasmtime')) true diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 905488251c2d7..8544f34bfb7bf 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -130,7 +130,7 @@ OutputFile="$(BundleDir)publish\ProxyProjectForAOTOnHelix.props" /> - + diff --git a/eng/testing/tests.mobile.targets b/eng/testing/tests.mobile.targets index b150d2b5478fc..7b019f6c40603 100644 --- a/eng/testing/tests.mobile.targets +++ b/eng/testing/tests.mobile.targets @@ -14,7 +14,20 @@ - true + true + + + + $([MSBuild]::NormalizePath('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc-published', 'netstandard', 'ILCompiler.Build.Tasks.dll')) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) + $(IlcPath) + $(CoreCLRAotSdkDir) + $(LibrariesAllBinArtifactsPath) + $(LibrariesAllBinArtifactsPath) + true + true + false + true diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index f6fa4f54e86b0..37b4102b6ee2a 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -613,6 +613,9 @@ + + + + + + + + + diff --git a/src/mono/msbuild/apple/build/AppleBuild.props b/src/mono/msbuild/apple/build/AppleBuild.props index 8ec2084b5e4f6..57627b5e6e545 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.props +++ b/src/mono/msbuild/apple/build/AppleBuild.props @@ -19,12 +19,15 @@ <_IsLibraryMode Condition="'$(NativeLib)' != ''">true + <_AotCompileTargetName Condition="'$(RunAOTCompilation)' == 'true'">_AppleAotCompile; + <_AotCompileTargetName Condition="'$(UseNativeAOTRuntime)' == 'true'">_AppleNativeAotCompile; + Publish _InitializeCommonProperties; _BeforeAppleBuild; _AppleResolveReferences; - _AppleAotCompile; + $(_AotCompileTargetName) _BuildNativeLibrary; _AppleGenerateAppBundle; _AfterAppleBuild diff --git a/src/mono/msbuild/apple/build/AppleBuild.targets b/src/mono/msbuild/apple/build/AppleBuild.targets index 990269a3f4f78..4b18c03785f84 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.targets @@ -15,6 +15,10 @@ TaskName="ILStrip" AssemblyFile="$(MonoTargetsTasksAssemblyPath)" /> + + + @@ -46,7 +50,7 @@ $([MSBuild]::NormalizeDirectory('$(OutDir)', 'Bundle')) $(AppleBundleDir) - <_MonoHeaderPath>$([MSBuild]::NormalizeDirectory($(MicrosoftNetCoreAppRuntimePackRidNativeDir), 'include', 'mono-2.0')) + <_MonoHeaderPath Condition="'$(UseNativeAOTRuntime)' != 'true'">$([MSBuild]::NormalizeDirectory($(MicrosoftNetCoreAppRuntimePackRidNativeDir), 'include', 'mono-2.0')) <_AotModuleTablePath>$(AppleBundleDir)\modules.m $(AssemblyName) @@ -57,7 +61,7 @@ - marshal-ilgen + marshal-ilgen @@ -85,7 +89,7 @@ <_AppleRuntimeConfigFilePath Condition="'$(_AppleRuntimeConfigFilePath)' == ''">$([MSBuild]::NormalizePath($(AppleBuildDir), '$(AssemblyName).runtimeconfig.json')) <_ParsedRuntimeConfigFilePath Condition="'$(_ParsedRuntimeConfigFilePath)' == ''">$([MSBuild]::NormalizePath($(AppleBuildDir), 'runtimeconfig.bin')) - true + true @@ -225,6 +229,8 @@ + + + + <_LinkerFlagsToDrop Include="@(NativeFramework->'-framework %(Identity)')" /> + + + <_NativeDependencies Include="%(ManagedBinary.IlcOutputFile)" /> + + $(OriginalPublishDir) $(TestRootDir)AppBundle\ - $(OriginalPublishDir)AppleTestRunner.dll + $(OriginalPublishDir)AppleTestRunner.dll true diff --git a/src/mono/msbuild/common/LibraryBuilder.targets b/src/mono/msbuild/common/LibraryBuilder.targets index 3edfb5c1a6242..db8968f232a11 100644 --- a/src/mono/msbuild/common/LibraryBuilder.targets +++ b/src/mono/msbuild/common/LibraryBuilder.targets @@ -3,7 +3,7 @@ AssemblyFile="$(LibraryBuilderTasksAssemblyPath)" /> + Condition="'$(_IsLibraryMode)' == 'true' and '$(RunAOTCompilation)' == 'true' and '$(UseNativeAOTRuntime)' != 'true'"> <_IsSharedLibrary>false diff --git a/src/mono/sample/iOS-NativeAOT/Directory.Build.props b/src/mono/sample/iOS-NativeAOT/Directory.Build.props new file mode 100644 index 0000000000000..1a0bd3db0a4fc --- /dev/null +++ b/src/mono/sample/iOS-NativeAOT/Directory.Build.props @@ -0,0 +1,10 @@ + + + false + false + true + true + + + + \ No newline at end of file diff --git a/src/mono/sample/iOS-NativeAOT/Directory.Build.targets b/src/mono/sample/iOS-NativeAOT/Directory.Build.targets new file mode 100644 index 0000000000000..41035a0c0c140 --- /dev/null +++ b/src/mono/sample/iOS-NativeAOT/Directory.Build.targets @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/mono/sample/iOS-NativeAOT/Program.csproj b/src/mono/sample/iOS-NativeAOT/Program.csproj index f7a5b8b72f3a3..6408df44882d9 100644 --- a/src/mono/sample/iOS-NativeAOT/Program.csproj +++ b/src/mono/sample/iOS-NativeAOT/Program.csproj @@ -8,6 +8,7 @@ true $(TargetOS)-$(TargetArchitecture) HelloiOS + $(DefineConstants);CI_TEST true $(OutputPath)/publish static @@ -15,13 +16,14 @@ false Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink + $([MSBuild]::NormalizePath('$(NativeAotTargetsPath)', 'Microsoft.DotNet.ILCompiler.SingleEntry.targets')) true $(MSBuildWarningsAsErrors);NU1603 false - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'packages', '$(CoreCLRConfiguration)', 'Shipping')) + @@ -29,7 +31,6 @@ - @@ -56,6 +57,7 @@ @@ -69,7 +71,6 @@ <_LinkerFlagsToDrop Include="@(NativeFramework->'-framework %(Identity)')" /> - <_LinkerFlagsToDrop Include="@(LinkerArg)" Condition="$([System.String]::new('%(Identity)').Contains('swift'))" /> <_NativeDependencies Include="%(ManagedBinary.IlcOutputFile)" /> @@ -105,7 +106,7 @@ + Condition="'$(DeployAndRun)' == 'true' and '$(ArchiveTests)' != 'true'"> diff --git a/src/mono/sample/iOS/Directory.Build.props b/src/mono/sample/iOS/Directory.Build.props new file mode 100644 index 0000000000000..1a0bd3db0a4fc --- /dev/null +++ b/src/mono/sample/iOS/Directory.Build.props @@ -0,0 +1,10 @@ + + + false + false + true + true + + + + \ No newline at end of file diff --git a/src/mono/sample/iOS/Directory.Build.targets b/src/mono/sample/iOS/Directory.Build.targets new file mode 100644 index 0000000000000..41035a0c0c140 --- /dev/null +++ b/src/mono/sample/iOS/Directory.Build.targets @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/mono/sample/iOS/Program.csproj b/src/mono/sample/iOS/Program.csproj index 38d39840877f9..e3d374b7f65de 100644 --- a/src/mono/sample/iOS/Program.csproj +++ b/src/mono/sample/iOS/Program.csproj @@ -1,7 +1,8 @@ - Exe + bin + $(MSBuildThisFileDirectory)obj/ $(NetCoreAppCurrent) iossimulator $(TargetOS)-$(TargetArchitecture) @@ -24,10 +25,7 @@ Publish - - - - + diagnostics_tracing;marshal-ilgen @@ -46,7 +44,7 @@ From ca869674f6bb33f65cdea15e8557ce56fc5c3a59 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 19 Jun 2023 18:30:55 +0200 Subject: [PATCH 02/87] Add Native AOT library pipeline for iOS and disable other tests --- eng/pipelines/common/global-build-job.yml | 19 +- eng/pipelines/common/platform-matrix.yml | 8 +- eng/pipelines/runtime-linker-tests.yml | 132 +- eng/pipelines/runtime-staging.yml | 82 +- eng/pipelines/runtime.yml | 2699 +++++++++++---------- src/libraries/tests.proj | 2 +- 6 files changed, 1495 insertions(+), 1447 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index cf93d34062b7d..6aa9abe6a79f3 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -4,6 +4,7 @@ parameters: buildArgs: '' archType: '' hostedOs: '' + hostedArch: '' osGroup: '' osSubgroup: '' container: '' @@ -70,6 +71,13 @@ jobs: - name: _osParameter 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 @@ -190,7 +198,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 }} @@ -200,6 +208,15 @@ 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 bae79645c0c6d..c47bd2bbc4c37 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -769,7 +769,13 @@ jobs: platform: ios_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - runtimeFlavor: mono + ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: + hostedOs: osx + hostedArch: x64 + ${{ if eq(parameters.runtimeFlavor, '') }}: + runtimeFlavor: mono + ${{ else }}: + runtimeFlavor: ${{ parameters.runtimeFlavor }} buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} diff --git a/eng/pipelines/runtime-linker-tests.yml b/eng/pipelines/runtime-linker-tests.yml index 314249cd181f4..ad7a6df8a7f58 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 322faae117b71..3c1ec70634c11 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 784d3f86da5d6..cc9563d799624 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -61,480 +61,480 @@ 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;tracing/eventpipe/diagnosticport;tracing/eventpipe/reverse;" 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 }} - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - scenarios: - - normal - - WasmTestOnBrowser - - - template: /eng/pipelines/common/templates/wasm-library-tests.yml - parameters: - platforms: - - browser_wasm_win - alwaysRun: ${{ variables.isRollingBuild }} - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - 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 }} - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - - # 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 }} - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - - - 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 }} - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - - # Wasm Debugger tests - - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml - parameters: - platforms: - - 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 - parameters: - 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 - parameters: - platforms: - - browser_wasm - nameSuffix: _Threading_Smoke - extraBuildArgs: /p:MonoWasmBuildVariant=multithread /p:_WasmPThreadPoolSize=8 /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - 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 /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - 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 /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - 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 - extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - alwaysRun: ${{ variables.isRollingBuild }} + # # + # # 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;tracing/eventpipe/diagnosticport;tracing/eventpipe/reverse;" 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 }} + # extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + # scenarios: + # - normal + # - WasmTestOnBrowser + + # - template: /eng/pipelines/common/templates/wasm-library-tests.yml + # parameters: + # platforms: + # - browser_wasm_win + # alwaysRun: ${{ variables.isRollingBuild }} + # extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + # 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 }} + # extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + + # # 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 }} + # extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + + # - 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 }} + # extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + + # # Wasm Debugger tests + # - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml + # parameters: + # platforms: + # - 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 + # parameters: + # 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 + # parameters: + # platforms: + # - browser_wasm + # nameSuffix: _Threading_Smoke + # extraBuildArgs: /p:MonoWasmBuildVariant=multithread /p:_WasmPThreadPoolSize=8 /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + # 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 /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + # 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 /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + # 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 + # extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + # alwaysRun: ${{ variables.isRollingBuild }} # # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size @@ -548,7 +548,7 @@ extends: runtimeFlavor: mono platforms: - ios_arm64 - - tvos_arm64 + # - tvos_arm64 variables: # map dependencies variables to local variables - name: librariesContainsChange @@ -578,8 +578,889 @@ extends: 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 + # # + # - 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) + # - # MacCatalyst interp - requires AOT Compilation and Interp flags + # 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 @@ -589,872 +1470,16 @@ extends: 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'] ] + - ios_arm64 + # - tvos_arm64 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 + buildArgs: -s clr.aot+libs+libs.tests -c $(_BuildConfig) -rc $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=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) + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true \ No newline at end of file diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 37b4102b6ee2a..8bdca214dc8f6 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -611,7 +611,7 @@ BuildInParallel="false" /> - + Date: Mon, 19 Jun 2023 18:41:53 +0200 Subject: [PATCH 03/87] Disable other tests --- eng/pipelines/runtime-official.yml | 976 ++++++++++++++--------------- 1 file changed, 488 insertions(+), 488 deletions(-) diff --git a/eng/pipelines/runtime-official.yml b/eng/pipelines/runtime-official.yml index 7cae3a51ee9da..97744ffa70df4 100644 --- a/eng/pipelines/runtime-official.yml +++ b/eng/pipelines/runtime-official.yml @@ -34,515 +34,515 @@ extends: - stage: Build jobs: - # - # Localization build - # + # # + # # Localization build + # # - - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}: - - template: /eng/common/templates/job/onelocbuild.yml - parameters: - MirrorRepo: runtime - LclSource: lclFilesfromPackage - LclPackageId: 'LCL-JUNO-PROD-RUNTIME' + # - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}: + # - template: /eng/common/templates/job/onelocbuild.yml + # parameters: + # MirrorRepo: runtime + # LclSource: lclFilesfromPackage + # LclPackageId: 'LCL-JUNO-PROD-RUNTIME' - # - # Source Index Build - # - - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}: - - template: /eng/common/templates/job/source-index-stage1.yml - parameters: - sourceIndexBuildCommand: build.cmd -subset libs.sfx+libs.oob -binarylog -os linux -ci /p:SkipLibrariesNativeRuntimePackages=true + # # + # # Source Index Build + # # + # - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}: + # - template: /eng/common/templates/job/source-index-stage1.yml + # parameters: + # sourceIndexBuildCommand: build.cmd -subset libs.sfx+libs.oob -binarylog -os linux -ci /p:SkipLibrariesNativeRuntimePackages=true - # - # Build CoreCLR - # - - 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_x86 - - windows_x64 - - windows_arm64 - jobParameters: - isOfficialBuild: ${{ variables.isOfficialBuild }} - signBinaries: ${{ variables.isOfficialBuild }} - timeoutInMinutes: 120 + # # + # # Build CoreCLR + # # + # - 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_x86 + # - windows_x64 + # - windows_arm64 + # jobParameters: + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # signBinaries: ${{ variables.isOfficialBuild }} + # timeoutInMinutes: 120 - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/crossdac-pack.yml - buildConfig: release - platforms: - - windows_x64 - jobParameters: - isOfficialBuild: ${{ variables.isOfficialBuild }} - timeoutInMinutes: 120 - crossDacPlatforms: - - linux_x64 - - linux_arm - - linux_arm64 - - linux_musl_x64 - - linux_musl_arm - - linux_musl_arm64 - - windows_x64 - - windows_arm64 + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/crossdac-pack.yml + # buildConfig: release + # platforms: + # - windows_x64 + # jobParameters: + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # timeoutInMinutes: 120 + # crossDacPlatforms: + # - linux_x64 + # - linux_arm + # - linux_arm64 + # - linux_musl_x64 + # - linux_musl_arm + # - linux_musl_arm64 + # - windows_x64 + # - windows_arm64 - # - # Build NativeAOT runtime packs - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - platforms: - - maccatalyst_x64 - - maccatalyst_arm64 - - tvossimulator_x64 - - tvossimulator_arm64 - - tvos_arm64 - - iossimulator_x64 - - iossimulator_arm64 - - ios_arm64 - - linux_bionic_arm64 - - linux_bionic_x64 - jobParameters: - buildArgs: -s clr.nativeaotlibs+clr.nativeaotruntime+libs+packs -c $(_BuildConfig) /p:BuildNativeAOTRuntimePack=true - nameSuffix: AllSubsets_NativeAOT - isOfficialBuild: ${{ variables.isOfficialBuild }} - extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - extraStepsParameters: - name: NativeAOTRuntimePacks + # # + # # Build NativeAOT runtime packs + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # platforms: + # - maccatalyst_x64 + # - maccatalyst_arm64 + # - tvossimulator_x64 + # - tvossimulator_arm64 + # - tvos_arm64 + # - iossimulator_x64 + # - iossimulator_arm64 + # - ios_arm64 + # - linux_bionic_arm64 + # - linux_bionic_x64 + # jobParameters: + # buildArgs: -s clr.nativeaotlibs+clr.nativeaotruntime+libs+packs -c $(_BuildConfig) /p:BuildNativeAOTRuntimePack=true + # nameSuffix: AllSubsets_NativeAOT + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + # extraStepsParameters: + # name: NativeAOTRuntimePacks - # - # 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_x64 - - android_x86 - - android_arm - - android_arm64 - - maccatalyst_x64 - - maccatalyst_arm64 - - tvossimulator_x64 - - tvossimulator_arm64 - - tvos_arm64 - - iossimulator_x64 - - iossimulator_arm64 - - ios_arm64 - - osx_x64 - - osx_arm64 - - linux_x64 - - linux_arm - - linux_arm64 - - linux_musl_x64 - - linux_bionic_arm64 - - linux_bionic_x64 - # - linux_musl_arm - # - linux_musl_arm64 - - windows_x64 - - windows_x86 - # - windows_arm64 - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - nameSuffix: AllSubsets_Mono - isOfficialBuild: ${{ variables.isOfficialBuild }} - 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_x64 + # - android_x86 + # - android_arm + # - android_arm64 + # - maccatalyst_x64 + # - maccatalyst_arm64 + # - tvossimulator_x64 + # - tvossimulator_arm64 + # - tvos_arm64 + # - iossimulator_x64 + # - iossimulator_arm64 + # - ios_arm64 + # - osx_x64 + # - osx_arm64 + # - linux_x64 + # - linux_arm + # - linux_arm64 + # - linux_musl_x64 + # - linux_bionic_arm64 + # - linux_bionic_x64 + # # - linux_musl_arm + # # - linux_musl_arm64 + # - windows_x64 + # - windows_x86 + # # - windows_arm64 + # jobParameters: + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # nameSuffix: AllSubsets_Mono + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + # extraStepsParameters: + # name: MonoRuntimePacks - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - browser_wasm - - wasi_wasm - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - nameSuffix: AllSubsets_Mono - isOfficialBuild: ${{ variables.isOfficialBuild }} - extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - extraStepsParameters: - name: MonoRuntimePacks + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - browser_wasm + # - wasi_wasm + # jobParameters: + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + # nameSuffix: AllSubsets_Mono + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + # extraStepsParameters: + # name: MonoRuntimePacks - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - browser_wasm - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:MonoWasmBuildVariant=perftrace /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - nameSuffix: AllSubsets_Mono_perftrace - isOfficialBuild: ${{ variables.isOfficialBuild }} - runtimeVariant: perftrace - extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - extraStepsParameters: - name: MonoRuntimePacks + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - browser_wasm + # jobParameters: + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:MonoWasmBuildVariant=perftrace /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + # nameSuffix: AllSubsets_Mono_perftrace + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # runtimeVariant: perftrace + # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + # extraStepsParameters: + # name: MonoRuntimePacks - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - browser_wasm - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:MonoWasmBuildVariant=multithread /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - nameSuffix: AllSubsets_Mono_multithread - isOfficialBuild: ${{ variables.isOfficialBuild }} - runtimeVariant: multithread - extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - extraStepsParameters: - name: MonoRuntimePacks + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # runtimeFlavor: mono + # platforms: + # - browser_wasm + # jobParameters: + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:MonoWasmBuildVariant=multithread /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + # nameSuffix: AllSubsets_Mono_multithread + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # runtimeVariant: multithread + # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + # extraStepsParameters: + # name: MonoRuntimePacks - # Build Mono AOT offset headers once, for consumption elsewhere - # - - 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 }} + # # Build Mono AOT offset headers once, for consumption elsewhere + # # + # - 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 }} - # - # Build Mono release AOT cross-compilers - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_x64 - jobParameters: - buildArgs: -s mono+packs -c $(_BuildConfig) - /p:MonoCrossAOTTargetOS=android+browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true - nameSuffix: CrossAOT_Mono - runtimeVariant: crossaot - dependsOn: - - mono_android_offsets - - mono_browser_offsets - monoCrossAOTTargetOS: - - android - - browser - isOfficialBuild: ${{ variables.isOfficialBuild }} - extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - extraStepsParameters: - name: MonoRuntimePacks + # # + # # Build Mono release AOT cross-compilers + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_x64 + # jobParameters: + # buildArgs: -s mono+packs -c $(_BuildConfig) + # /p:MonoCrossAOTTargetOS=android+browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true + # nameSuffix: CrossAOT_Mono + # runtimeVariant: crossaot + # dependsOn: + # - mono_android_offsets + # - mono_browser_offsets + # monoCrossAOTTargetOS: + # - android + # - browser + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + # extraStepsParameters: + # name: MonoRuntimePacks - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - linux_arm64 - jobParameters: - buildArgs: -s mono+packs -c $(_BuildConfig) - /p:MonoCrossAOTTargetOS=browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true - nameSuffix: CrossAOT_Mono - runtimeVariant: crossaot - dependsOn: - - mono_browser_offsets - monoCrossAOTTargetOS: - - browser - isOfficialBuild: ${{ variables.isOfficialBuild }} - extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - extraStepsParameters: - name: MonoRuntimePacks + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - linux_arm64 + # jobParameters: + # buildArgs: -s mono+packs -c $(_BuildConfig) + # /p:MonoCrossAOTTargetOS=browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true + # nameSuffix: CrossAOT_Mono + # runtimeVariant: crossaot + # dependsOn: + # - mono_browser_offsets + # monoCrossAOTTargetOS: + # - browser + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + # extraStepsParameters: + # name: MonoRuntimePacks - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - windows_x64 - jobParameters: - buildArgs: -s mono+packs -c $(_BuildConfig) - /p:MonoCrossAOTTargetOS=android+browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true - nameSuffix: CrossAOT_Mono - runtimeVariant: crossaot - dependsOn: - - mono_android_offsets - - mono_browser_offsets - monoCrossAOTTargetOS: - - android - - browser - isOfficialBuild: ${{ variables.isOfficialBuild }} - extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - extraStepsParameters: - name: MonoRuntimePacks + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - windows_x64 + # jobParameters: + # buildArgs: -s mono+packs -c $(_BuildConfig) + # /p:MonoCrossAOTTargetOS=android+browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true + # nameSuffix: CrossAOT_Mono + # runtimeVariant: crossaot + # dependsOn: + # - mono_android_offsets + # - mono_browser_offsets + # monoCrossAOTTargetOS: + # - android + # - browser + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + # extraStepsParameters: + # name: MonoRuntimePacks - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - osx_x64 - jobParameters: - buildArgs: -s mono+packs -c $(_BuildConfig) - /p:MonoCrossAOTTargetOS=android+browser+tvos+ios+maccatalyst /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true - nameSuffix: CrossAOT_Mono - runtimeVariant: crossaot - dependsOn: - - mono_android_offsets - - mono_browser_offsets - - mono_tvos_offsets - - mono_ios_offsets - - mono_maccatalyst_offsets - monoCrossAOTTargetOS: - - android - - browser - - tvos - - ios - - maccatalyst - isOfficialBuild: ${{ variables.isOfficialBuild }} - extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - extraStepsParameters: - name: MonoRuntimePacks + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - osx_x64 + # jobParameters: + # buildArgs: -s mono+packs -c $(_BuildConfig) + # /p:MonoCrossAOTTargetOS=android+browser+tvos+ios+maccatalyst /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true + # nameSuffix: CrossAOT_Mono + # runtimeVariant: crossaot + # dependsOn: + # - mono_android_offsets + # - mono_browser_offsets + # - mono_tvos_offsets + # - mono_ios_offsets + # - mono_maccatalyst_offsets + # monoCrossAOTTargetOS: + # - android + # - browser + # - tvos + # - ios + # - maccatalyst + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + # extraStepsParameters: + # name: MonoRuntimePacks - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - osx_arm64 - jobParameters: - buildArgs: -s mono+packs -c $(_BuildConfig) - /p:MonoCrossAOTTargetOS=browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true - nameSuffix: CrossAOT_Mono - runtimeVariant: crossaot - dependsOn: - - mono_browser_offsets - monoCrossAOTTargetOS: - - browser - isOfficialBuild: ${{ variables.isOfficialBuild }} - extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - extraStepsParameters: - name: MonoRuntimePacks + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # runtimeFlavor: mono + # buildConfig: release + # platforms: + # - osx_arm64 + # jobParameters: + # buildArgs: -s mono+packs -c $(_BuildConfig) + # /p:MonoCrossAOTTargetOS=browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true + # nameSuffix: CrossAOT_Mono + # runtimeVariant: crossaot + # dependsOn: + # - mono_browser_offsets + # monoCrossAOTTargetOS: + # - browser + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + # extraStepsParameters: + # name: MonoRuntimePacks - # - # Build Mono LLVM runtime packs - # - - template: /eng/pipelines/common/platform-matrix-multijob.yml - parameters: - platforms: - - osx_x64 - - linux_x64 - # - linux_arm - - linux_arm64 - # - linux_musl_x64 - # - linux_musl_arm64 - # - windows_x64 - # - windows_x86 - # - windows_arm64 - jobTemplates: - # LLVMJIT - - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - nameSuffix: AllSubsets_Mono_LLVMJIT - runtimeVariant: LLVMJIT - isOfficialBuild: ${{ variables.isOfficialBuild }} - extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - extraStepsParameters: - name: MonoRuntimePacks - #LLVMAOT - - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: release - runtimeFlavor: mono - jobParameters: - buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - nameSuffix: AllSubsets_Mono_LLVMAOT - runtimeVariant: LLVMAOT - isOfficialBuild: ${{ variables.isOfficialBuild }} - extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - extraStepsParameters: - name: MonoRuntimePacks + # # + # # Build Mono LLVM runtime packs + # # + # - template: /eng/pipelines/common/platform-matrix-multijob.yml + # parameters: + # platforms: + # - osx_x64 + # - linux_x64 + # # - linux_arm + # - linux_arm64 + # # - linux_musl_x64 + # # - linux_musl_arm64 + # # - windows_x64 + # # - windows_x86 + # # - windows_arm64 + # jobTemplates: + # # LLVMJIT + # - jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # runtimeFlavor: mono + # jobParameters: + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + # nameSuffix: AllSubsets_Mono_LLVMJIT + # runtimeVariant: LLVMJIT + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + # extraStepsParameters: + # name: MonoRuntimePacks + # #LLVMAOT + # - jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: release + # runtimeFlavor: mono + # jobParameters: + # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true + # nameSuffix: AllSubsets_Mono_LLVMAOT + # runtimeVariant: LLVMAOT + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + # extraStepsParameters: + # name: MonoRuntimePacks - # - # Build libraries using live CoreLib from CoreCLR - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/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_x86 - - windows_x64 - - windows_arm64 - jobParameters: - isOfficialBuild: ${{ variables.isOfficialBuild }} - liveRuntimeBuildConfig: release - # Official builds don't run tests, locally or on Helix - runTests: false - useHelix: false + # # + # # Build libraries using live CoreLib from CoreCLR + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/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_x86 + # - windows_x64 + # - windows_arm64 + # jobParameters: + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # liveRuntimeBuildConfig: release + # # Official builds don't run tests, locally or on Helix + # runTests: false + # useHelix: false - # - # Build libraries AllConfigurations for packages - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - windows_x64 - jobParameters: - framework: allConfigurations - isOfficialBuild: ${{ variables.isOfficialBuild }} - isOfficialAllConfigurations: true - liveRuntimeBuildConfig: release - # Official builds don't run tests, locally or on Helix - runTests: false - useHelix: false + # # + # # Build libraries AllConfigurations for packages + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/libraries/build-job.yml + # buildConfig: Release + # platforms: + # - windows_x64 + # jobParameters: + # framework: allConfigurations + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # isOfficialAllConfigurations: true + # liveRuntimeBuildConfig: release + # # Official builds don't run tests, locally or on Helix + # runTests: false + # useHelix: false - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - helixQueueGroup: ci - platforms: - - SourceBuild_linux_x64 - jobParameters: - nameSuffix: PortableSourceBuild - extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - extraStepsParameters: - name: SourceBuildPackages - timeoutInMinutes: 95 + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/common/global-build-job.yml + # buildConfig: Release + # helixQueueGroup: ci + # platforms: + # - SourceBuild_linux_x64 + # jobParameters: + # nameSuffix: PortableSourceBuild + # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + # extraStepsParameters: + # name: SourceBuildPackages + # timeoutInMinutes: 95 - # - # Installer Build - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/installer/jobs/build-job.yml - buildConfig: Release - jobParameters: - liveRuntimeBuildConfig: release - liveLibrariesBuildConfig: Release - isOfficialBuild: ${{ variables.isOfficialBuild }} - platforms: - - osx_arm64 - - osx_x64 - - linux_x64 - - linux_arm - - linux_arm64 - - linux_musl_x64 - - linux_musl_arm - - linux_musl_arm64 - - windows_x86 - - windows_x64 - - windows_arm64 + # # + # # Installer Build + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/installer/jobs/build-job.yml + # buildConfig: Release + # jobParameters: + # liveRuntimeBuildConfig: release + # liveLibrariesBuildConfig: Release + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # platforms: + # - osx_arm64 + # - osx_x64 + # - linux_x64 + # - linux_arm + # - linux_arm64 + # - linux_musl_x64 + # - linux_musl_arm + # - linux_musl_arm64 + # - windows_x86 + # - windows_x64 + # - windows_arm64 - # - # Build PGO CoreCLR release - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: release - platforms: - - windows_x64 - - windows_x86 - - linux_x64 - - windows_arm64 - - linux_arm64 - jobParameters: - isOfficialBuild: ${{ variables.isOfficialBuild }} - signBinaries: false - testGroup: innerloop - pgoType: 'PGO' + # # + # # Build PGO CoreCLR release + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + # buildConfig: release + # platforms: + # - windows_x64 + # - windows_x86 + # - linux_x64 + # - windows_arm64 + # - linux_arm64 + # jobParameters: + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # signBinaries: false + # testGroup: innerloop + # pgoType: 'PGO' - # - # PGO Build - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/installer/jobs/build-job.yml - buildConfig: Release - jobParameters: - isOfficialBuild: ${{ variables.isOfficialBuild }} - liveRuntimeBuildConfig: release - liveLibrariesBuildConfig: Release - pgoType: 'PGO' - platforms: - - windows_x64 - - windows_x86 - - linux_x64 - - windows_arm64 - - linux_arm64 + # # + # # PGO Build + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/installer/jobs/build-job.yml + # buildConfig: Release + # jobParameters: + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # liveRuntimeBuildConfig: release + # liveLibrariesBuildConfig: Release + # pgoType: 'PGO' + # platforms: + # - windows_x64 + # - windows_x86 + # - linux_x64 + # - windows_arm64 + # - linux_arm64 - # - # Build Workloads - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/workloads-build.yml - buildConfig: release - platforms: - - windows_x64 - jobParameters: - isOfficialBuild: ${{ variables.isOfficialBuild }} - timeoutInMinutes: 120 - dependsOn: - - Build_android_arm_release_AllSubsets_Mono - - Build_android_arm64_release_AllSubsets_Mono - - Build_android_x86_release_AllSubsets_Mono - - Build_android_x64_release_AllSubsets_Mono - - Build_browser_wasm_Linux_release_AllSubsets_Mono - - Build_wasi_wasm_linux_release_AllSubsets_Mono - - Build_ios_arm64_release_AllSubsets_Mono - - Build_iossimulator_x64_release_AllSubsets_Mono - - Build_iossimulator_arm64_release_AllSubsets_Mono - - Build_maccatalyst_arm64_release_AllSubsets_Mono - - Build_maccatalyst_x64_release_AllSubsets_Mono - - Build_tvos_arm64_release_AllSubsets_Mono - - Build_tvossimulator_arm64_release_AllSubsets_Mono - - Build_tvossimulator_x64_release_AllSubsets_Mono - - Build_windows_x64_release_CrossAOT_Mono - - installer__coreclr__windows_x64_Release_ - - installer__coreclr__windows_x86_Release_ - - installer__coreclr__windows_arm64_Release_ + # # + # # Build Workloads + # # + # - template: /eng/pipelines/common/platform-matrix.yml + # parameters: + # jobTemplate: /eng/pipelines/mono/templates/workloads-build.yml + # buildConfig: release + # platforms: + # - windows_x64 + # jobParameters: + # isOfficialBuild: ${{ variables.isOfficialBuild }} + # timeoutInMinutes: 120 + # dependsOn: + # - Build_android_arm_release_AllSubsets_Mono + # - Build_android_arm64_release_AllSubsets_Mono + # - Build_android_x86_release_AllSubsets_Mono + # - Build_android_x64_release_AllSubsets_Mono + # - Build_browser_wasm_Linux_release_AllSubsets_Mono + # - Build_wasi_wasm_linux_release_AllSubsets_Mono + # - Build_ios_arm64_release_AllSubsets_Mono + # - Build_iossimulator_x64_release_AllSubsets_Mono + # - Build_iossimulator_arm64_release_AllSubsets_Mono + # - Build_maccatalyst_arm64_release_AllSubsets_Mono + # - Build_maccatalyst_x64_release_AllSubsets_Mono + # - Build_tvos_arm64_release_AllSubsets_Mono + # - Build_tvossimulator_arm64_release_AllSubsets_Mono + # - Build_tvossimulator_x64_release_AllSubsets_Mono + # - Build_windows_x64_release_CrossAOT_Mono + # - installer__coreclr__windows_x64_Release_ + # - installer__coreclr__windows_x86_Release_ + # - installer__coreclr__windows_arm64_Release_ - - ${{ if eq(variables.isOfficialBuild, true) }}: - - template: /eng/pipelines/official/stages/publish.yml - parameters: - isOfficialBuild: ${{ variables.isOfficialBuild }} + # - ${{ if eq(variables.isOfficialBuild, true) }}: + # - template: /eng/pipelines/official/stages/publish.yml + # parameters: + # isOfficialBuild: ${{ variables.isOfficialBuild }} From 6ade9063e0f22739b1c1d6f6fb0c3e2df0a21f0a Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 19 Jun 2023 18:47:44 +0200 Subject: [PATCH 04/87] Disable other tests --- eng/pipelines/global-build.yml | 262 ++++---- eng/pipelines/runtime-official.yml | 976 ++++++++++++++--------------- 2 files changed, 619 insertions(+), 619 deletions(-) diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml index 6f80e6ad10452..831b7e0871b7c 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) diff --git a/eng/pipelines/runtime-official.yml b/eng/pipelines/runtime-official.yml index 97744ffa70df4..7cae3a51ee9da 100644 --- a/eng/pipelines/runtime-official.yml +++ b/eng/pipelines/runtime-official.yml @@ -34,515 +34,515 @@ extends: - stage: Build jobs: - # # - # # Localization build - # # + # + # Localization build + # - # - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}: - # - template: /eng/common/templates/job/onelocbuild.yml - # parameters: - # MirrorRepo: runtime - # LclSource: lclFilesfromPackage - # LclPackageId: 'LCL-JUNO-PROD-RUNTIME' + - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}: + - template: /eng/common/templates/job/onelocbuild.yml + parameters: + MirrorRepo: runtime + LclSource: lclFilesfromPackage + LclPackageId: 'LCL-JUNO-PROD-RUNTIME' - # # - # # Source Index Build - # # - # - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}: - # - template: /eng/common/templates/job/source-index-stage1.yml - # parameters: - # sourceIndexBuildCommand: build.cmd -subset libs.sfx+libs.oob -binarylog -os linux -ci /p:SkipLibrariesNativeRuntimePackages=true + # + # Source Index Build + # + - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}: + - template: /eng/common/templates/job/source-index-stage1.yml + parameters: + sourceIndexBuildCommand: build.cmd -subset libs.sfx+libs.oob -binarylog -os linux -ci /p:SkipLibrariesNativeRuntimePackages=true - # # - # # Build CoreCLR - # # - # - 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_x86 - # - windows_x64 - # - windows_arm64 - # jobParameters: - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # signBinaries: ${{ variables.isOfficialBuild }} - # timeoutInMinutes: 120 + # + # Build CoreCLR + # + - 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_x86 + - windows_x64 + - windows_arm64 + jobParameters: + isOfficialBuild: ${{ variables.isOfficialBuild }} + signBinaries: ${{ variables.isOfficialBuild }} + timeoutInMinutes: 120 - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/crossdac-pack.yml - # buildConfig: release - # platforms: - # - windows_x64 - # jobParameters: - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # timeoutInMinutes: 120 - # crossDacPlatforms: - # - linux_x64 - # - linux_arm - # - linux_arm64 - # - linux_musl_x64 - # - linux_musl_arm - # - linux_musl_arm64 - # - windows_x64 - # - windows_arm64 + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/crossdac-pack.yml + buildConfig: release + platforms: + - windows_x64 + jobParameters: + isOfficialBuild: ${{ variables.isOfficialBuild }} + timeoutInMinutes: 120 + crossDacPlatforms: + - linux_x64 + - linux_arm + - linux_arm64 + - linux_musl_x64 + - linux_musl_arm + - linux_musl_arm64 + - windows_x64 + - windows_arm64 - # # - # # Build NativeAOT runtime packs - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # platforms: - # - maccatalyst_x64 - # - maccatalyst_arm64 - # - tvossimulator_x64 - # - tvossimulator_arm64 - # - tvos_arm64 - # - iossimulator_x64 - # - iossimulator_arm64 - # - ios_arm64 - # - linux_bionic_arm64 - # - linux_bionic_x64 - # jobParameters: - # buildArgs: -s clr.nativeaotlibs+clr.nativeaotruntime+libs+packs -c $(_BuildConfig) /p:BuildNativeAOTRuntimePack=true - # nameSuffix: AllSubsets_NativeAOT - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - # extraStepsParameters: - # name: NativeAOTRuntimePacks + # + # Build NativeAOT runtime packs + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + platforms: + - maccatalyst_x64 + - maccatalyst_arm64 + - tvossimulator_x64 + - tvossimulator_arm64 + - tvos_arm64 + - iossimulator_x64 + - iossimulator_arm64 + - ios_arm64 + - linux_bionic_arm64 + - linux_bionic_x64 + jobParameters: + buildArgs: -s clr.nativeaotlibs+clr.nativeaotruntime+libs+packs -c $(_BuildConfig) /p:BuildNativeAOTRuntimePack=true + nameSuffix: AllSubsets_NativeAOT + isOfficialBuild: ${{ variables.isOfficialBuild }} + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: NativeAOTRuntimePacks - # # - # # 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_x64 - # - android_x86 - # - android_arm - # - android_arm64 - # - maccatalyst_x64 - # - maccatalyst_arm64 - # - tvossimulator_x64 - # - tvossimulator_arm64 - # - tvos_arm64 - # - iossimulator_x64 - # - iossimulator_arm64 - # - ios_arm64 - # - osx_x64 - # - osx_arm64 - # - linux_x64 - # - linux_arm - # - linux_arm64 - # - linux_musl_x64 - # - linux_bionic_arm64 - # - linux_bionic_x64 - # # - linux_musl_arm - # # - linux_musl_arm64 - # - windows_x64 - # - windows_x86 - # # - windows_arm64 - # jobParameters: - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # nameSuffix: AllSubsets_Mono - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # 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_x64 + - android_x86 + - android_arm + - android_arm64 + - maccatalyst_x64 + - maccatalyst_arm64 + - tvossimulator_x64 + - tvossimulator_arm64 + - tvos_arm64 + - iossimulator_x64 + - iossimulator_arm64 + - ios_arm64 + - osx_x64 + - osx_arm64 + - linux_x64 + - linux_arm + - linux_arm64 + - linux_musl_x64 + - linux_bionic_arm64 + - linux_bionic_x64 + # - linux_musl_arm + # - linux_musl_arm64 + - windows_x64 + - windows_x86 + # - windows_arm64 + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + nameSuffix: AllSubsets_Mono + isOfficialBuild: ${{ variables.isOfficialBuild }} + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: MonoRuntimePacks - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - browser_wasm - # - wasi_wasm - # jobParameters: - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - # nameSuffix: AllSubsets_Mono - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - # extraStepsParameters: - # name: MonoRuntimePacks + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - browser_wasm + - wasi_wasm + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + nameSuffix: AllSubsets_Mono + isOfficialBuild: ${{ variables.isOfficialBuild }} + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: MonoRuntimePacks - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - browser_wasm - # jobParameters: - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:MonoWasmBuildVariant=perftrace /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - # nameSuffix: AllSubsets_Mono_perftrace - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # runtimeVariant: perftrace - # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - # extraStepsParameters: - # name: MonoRuntimePacks + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - browser_wasm + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:MonoWasmBuildVariant=perftrace /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + nameSuffix: AllSubsets_Mono_perftrace + isOfficialBuild: ${{ variables.isOfficialBuild }} + runtimeVariant: perftrace + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: MonoRuntimePacks - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # runtimeFlavor: mono - # platforms: - # - browser_wasm - # jobParameters: - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:MonoWasmBuildVariant=multithread /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - # nameSuffix: AllSubsets_Mono_multithread - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # runtimeVariant: multithread - # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - # extraStepsParameters: - # name: MonoRuntimePacks + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - browser_wasm + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:MonoWasmBuildVariant=multithread /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + nameSuffix: AllSubsets_Mono_multithread + isOfficialBuild: ${{ variables.isOfficialBuild }} + runtimeVariant: multithread + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: MonoRuntimePacks - # # Build Mono AOT offset headers once, for consumption elsewhere - # # - # - 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 }} + # Build Mono AOT offset headers once, for consumption elsewhere + # + - 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 }} - # # - # # Build Mono release AOT cross-compilers - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - linux_x64 - # jobParameters: - # buildArgs: -s mono+packs -c $(_BuildConfig) - # /p:MonoCrossAOTTargetOS=android+browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true - # nameSuffix: CrossAOT_Mono - # runtimeVariant: crossaot - # dependsOn: - # - mono_android_offsets - # - mono_browser_offsets - # monoCrossAOTTargetOS: - # - android - # - browser - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - # extraStepsParameters: - # name: MonoRuntimePacks + # + # Build Mono release AOT cross-compilers + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_x64 + jobParameters: + buildArgs: -s mono+packs -c $(_BuildConfig) + /p:MonoCrossAOTTargetOS=android+browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true + nameSuffix: CrossAOT_Mono + runtimeVariant: crossaot + dependsOn: + - mono_android_offsets + - mono_browser_offsets + monoCrossAOTTargetOS: + - android + - browser + isOfficialBuild: ${{ variables.isOfficialBuild }} + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: MonoRuntimePacks - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - linux_arm64 - # jobParameters: - # buildArgs: -s mono+packs -c $(_BuildConfig) - # /p:MonoCrossAOTTargetOS=browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true - # nameSuffix: CrossAOT_Mono - # runtimeVariant: crossaot - # dependsOn: - # - mono_browser_offsets - # monoCrossAOTTargetOS: - # - browser - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - # extraStepsParameters: - # name: MonoRuntimePacks + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - linux_arm64 + jobParameters: + buildArgs: -s mono+packs -c $(_BuildConfig) + /p:MonoCrossAOTTargetOS=browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true + nameSuffix: CrossAOT_Mono + runtimeVariant: crossaot + dependsOn: + - mono_browser_offsets + monoCrossAOTTargetOS: + - browser + isOfficialBuild: ${{ variables.isOfficialBuild }} + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: MonoRuntimePacks - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - windows_x64 - # jobParameters: - # buildArgs: -s mono+packs -c $(_BuildConfig) - # /p:MonoCrossAOTTargetOS=android+browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true - # nameSuffix: CrossAOT_Mono - # runtimeVariant: crossaot - # dependsOn: - # - mono_android_offsets - # - mono_browser_offsets - # monoCrossAOTTargetOS: - # - android - # - browser - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - # extraStepsParameters: - # name: MonoRuntimePacks + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - windows_x64 + jobParameters: + buildArgs: -s mono+packs -c $(_BuildConfig) + /p:MonoCrossAOTTargetOS=android+browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true + nameSuffix: CrossAOT_Mono + runtimeVariant: crossaot + dependsOn: + - mono_android_offsets + - mono_browser_offsets + monoCrossAOTTargetOS: + - android + - browser + isOfficialBuild: ${{ variables.isOfficialBuild }} + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: MonoRuntimePacks - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - osx_x64 - # jobParameters: - # buildArgs: -s mono+packs -c $(_BuildConfig) - # /p:MonoCrossAOTTargetOS=android+browser+tvos+ios+maccatalyst /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true - # nameSuffix: CrossAOT_Mono - # runtimeVariant: crossaot - # dependsOn: - # - mono_android_offsets - # - mono_browser_offsets - # - mono_tvos_offsets - # - mono_ios_offsets - # - mono_maccatalyst_offsets - # monoCrossAOTTargetOS: - # - android - # - browser - # - tvos - # - ios - # - maccatalyst - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - # extraStepsParameters: - # name: MonoRuntimePacks + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - osx_x64 + jobParameters: + buildArgs: -s mono+packs -c $(_BuildConfig) + /p:MonoCrossAOTTargetOS=android+browser+tvos+ios+maccatalyst /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true + nameSuffix: CrossAOT_Mono + runtimeVariant: crossaot + dependsOn: + - mono_android_offsets + - mono_browser_offsets + - mono_tvos_offsets + - mono_ios_offsets + - mono_maccatalyst_offsets + monoCrossAOTTargetOS: + - android + - browser + - tvos + - ios + - maccatalyst + isOfficialBuild: ${{ variables.isOfficialBuild }} + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: MonoRuntimePacks - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # runtimeFlavor: mono - # buildConfig: release - # platforms: - # - osx_arm64 - # jobParameters: - # buildArgs: -s mono+packs -c $(_BuildConfig) - # /p:MonoCrossAOTTargetOS=browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true - # nameSuffix: CrossAOT_Mono - # runtimeVariant: crossaot - # dependsOn: - # - mono_browser_offsets - # monoCrossAOTTargetOS: - # - browser - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - # extraStepsParameters: - # name: MonoRuntimePacks + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - osx_arm64 + jobParameters: + buildArgs: -s mono+packs -c $(_BuildConfig) + /p:MonoCrossAOTTargetOS=browser /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true + nameSuffix: CrossAOT_Mono + runtimeVariant: crossaot + dependsOn: + - mono_browser_offsets + monoCrossAOTTargetOS: + - browser + isOfficialBuild: ${{ variables.isOfficialBuild }} + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: MonoRuntimePacks - # # - # # Build Mono LLVM runtime packs - # # - # - template: /eng/pipelines/common/platform-matrix-multijob.yml - # parameters: - # platforms: - # - osx_x64 - # - linux_x64 - # # - linux_arm - # - linux_arm64 - # # - linux_musl_x64 - # # - linux_musl_arm64 - # # - windows_x64 - # # - windows_x86 - # # - windows_arm64 - # jobTemplates: - # # LLVMJIT - # - jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # runtimeFlavor: mono - # jobParameters: - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - # nameSuffix: AllSubsets_Mono_LLVMJIT - # runtimeVariant: LLVMJIT - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - # extraStepsParameters: - # name: MonoRuntimePacks - # #LLVMAOT - # - jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: release - # runtimeFlavor: mono - # jobParameters: - # buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) - # /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - # nameSuffix: AllSubsets_Mono_LLVMAOT - # runtimeVariant: LLVMAOT - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - # extraStepsParameters: - # name: MonoRuntimePacks + # + # Build Mono LLVM runtime packs + # + - template: /eng/pipelines/common/platform-matrix-multijob.yml + parameters: + platforms: + - osx_x64 + - linux_x64 + # - linux_arm + - linux_arm64 + # - linux_musl_x64 + # - linux_musl_arm64 + # - windows_x64 + # - windows_x86 + # - windows_arm64 + jobTemplates: + # LLVMJIT + - jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + nameSuffix: AllSubsets_Mono_LLVMJIT + runtimeVariant: LLVMJIT + isOfficialBuild: ${{ variables.isOfficialBuild }} + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: MonoRuntimePacks + #LLVMAOT + - jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + runtimeFlavor: mono + jobParameters: + buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true + nameSuffix: AllSubsets_Mono_LLVMAOT + runtimeVariant: LLVMAOT + isOfficialBuild: ${{ variables.isOfficialBuild }} + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: MonoRuntimePacks - # # - # # Build libraries using live CoreLib from CoreCLR - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/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_x86 - # - windows_x64 - # - windows_arm64 - # jobParameters: - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # liveRuntimeBuildConfig: release - # # Official builds don't run tests, locally or on Helix - # runTests: false - # useHelix: false + # + # Build libraries using live CoreLib from CoreCLR + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/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_x86 + - windows_x64 + - windows_arm64 + jobParameters: + isOfficialBuild: ${{ variables.isOfficialBuild }} + liveRuntimeBuildConfig: release + # Official builds don't run tests, locally or on Helix + runTests: false + useHelix: false - # # - # # Build libraries AllConfigurations for packages - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/libraries/build-job.yml - # buildConfig: Release - # platforms: - # - windows_x64 - # jobParameters: - # framework: allConfigurations - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # isOfficialAllConfigurations: true - # liveRuntimeBuildConfig: release - # # Official builds don't run tests, locally or on Helix - # runTests: false - # useHelix: false + # + # Build libraries AllConfigurations for packages + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - windows_x64 + jobParameters: + framework: allConfigurations + isOfficialBuild: ${{ variables.isOfficialBuild }} + isOfficialAllConfigurations: true + liveRuntimeBuildConfig: release + # Official builds don't run tests, locally or on Helix + runTests: false + useHelix: false - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/common/global-build-job.yml - # buildConfig: Release - # helixQueueGroup: ci - # platforms: - # - SourceBuild_linux_x64 - # jobParameters: - # nameSuffix: PortableSourceBuild - # extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml - # extraStepsParameters: - # name: SourceBuildPackages - # timeoutInMinutes: 95 + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + helixQueueGroup: ci + platforms: + - SourceBuild_linux_x64 + jobParameters: + nameSuffix: PortableSourceBuild + extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml + extraStepsParameters: + name: SourceBuildPackages + timeoutInMinutes: 95 - # # - # # Installer Build - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/installer/jobs/build-job.yml - # buildConfig: Release - # jobParameters: - # liveRuntimeBuildConfig: release - # liveLibrariesBuildConfig: Release - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # platforms: - # - osx_arm64 - # - osx_x64 - # - linux_x64 - # - linux_arm - # - linux_arm64 - # - linux_musl_x64 - # - linux_musl_arm - # - linux_musl_arm64 - # - windows_x86 - # - windows_x64 - # - windows_arm64 + # + # Installer Build + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/installer/jobs/build-job.yml + buildConfig: Release + jobParameters: + liveRuntimeBuildConfig: release + liveLibrariesBuildConfig: Release + isOfficialBuild: ${{ variables.isOfficialBuild }} + platforms: + - osx_arm64 + - osx_x64 + - linux_x64 + - linux_arm + - linux_arm64 + - linux_musl_x64 + - linux_musl_arm + - linux_musl_arm64 + - windows_x86 + - windows_x64 + - windows_arm64 - # # - # # Build PGO CoreCLR release - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - # buildConfig: release - # platforms: - # - windows_x64 - # - windows_x86 - # - linux_x64 - # - windows_arm64 - # - linux_arm64 - # jobParameters: - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # signBinaries: false - # testGroup: innerloop - # pgoType: 'PGO' + # + # Build PGO CoreCLR release + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: release + platforms: + - windows_x64 + - windows_x86 + - linux_x64 + - windows_arm64 + - linux_arm64 + jobParameters: + isOfficialBuild: ${{ variables.isOfficialBuild }} + signBinaries: false + testGroup: innerloop + pgoType: 'PGO' - # # - # # PGO Build - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/installer/jobs/build-job.yml - # buildConfig: Release - # jobParameters: - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # liveRuntimeBuildConfig: release - # liveLibrariesBuildConfig: Release - # pgoType: 'PGO' - # platforms: - # - windows_x64 - # - windows_x86 - # - linux_x64 - # - windows_arm64 - # - linux_arm64 + # + # PGO Build + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/installer/jobs/build-job.yml + buildConfig: Release + jobParameters: + isOfficialBuild: ${{ variables.isOfficialBuild }} + liveRuntimeBuildConfig: release + liveLibrariesBuildConfig: Release + pgoType: 'PGO' + platforms: + - windows_x64 + - windows_x86 + - linux_x64 + - windows_arm64 + - linux_arm64 - # # - # # Build Workloads - # # - # - template: /eng/pipelines/common/platform-matrix.yml - # parameters: - # jobTemplate: /eng/pipelines/mono/templates/workloads-build.yml - # buildConfig: release - # platforms: - # - windows_x64 - # jobParameters: - # isOfficialBuild: ${{ variables.isOfficialBuild }} - # timeoutInMinutes: 120 - # dependsOn: - # - Build_android_arm_release_AllSubsets_Mono - # - Build_android_arm64_release_AllSubsets_Mono - # - Build_android_x86_release_AllSubsets_Mono - # - Build_android_x64_release_AllSubsets_Mono - # - Build_browser_wasm_Linux_release_AllSubsets_Mono - # - Build_wasi_wasm_linux_release_AllSubsets_Mono - # - Build_ios_arm64_release_AllSubsets_Mono - # - Build_iossimulator_x64_release_AllSubsets_Mono - # - Build_iossimulator_arm64_release_AllSubsets_Mono - # - Build_maccatalyst_arm64_release_AllSubsets_Mono - # - Build_maccatalyst_x64_release_AllSubsets_Mono - # - Build_tvos_arm64_release_AllSubsets_Mono - # - Build_tvossimulator_arm64_release_AllSubsets_Mono - # - Build_tvossimulator_x64_release_AllSubsets_Mono - # - Build_windows_x64_release_CrossAOT_Mono - # - installer__coreclr__windows_x64_Release_ - # - installer__coreclr__windows_x86_Release_ - # - installer__coreclr__windows_arm64_Release_ + # + # Build Workloads + # + - template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/workloads-build.yml + buildConfig: release + platforms: + - windows_x64 + jobParameters: + isOfficialBuild: ${{ variables.isOfficialBuild }} + timeoutInMinutes: 120 + dependsOn: + - Build_android_arm_release_AllSubsets_Mono + - Build_android_arm64_release_AllSubsets_Mono + - Build_android_x86_release_AllSubsets_Mono + - Build_android_x64_release_AllSubsets_Mono + - Build_browser_wasm_Linux_release_AllSubsets_Mono + - Build_wasi_wasm_linux_release_AllSubsets_Mono + - Build_ios_arm64_release_AllSubsets_Mono + - Build_iossimulator_x64_release_AllSubsets_Mono + - Build_iossimulator_arm64_release_AllSubsets_Mono + - Build_maccatalyst_arm64_release_AllSubsets_Mono + - Build_maccatalyst_x64_release_AllSubsets_Mono + - Build_tvos_arm64_release_AllSubsets_Mono + - Build_tvossimulator_arm64_release_AllSubsets_Mono + - Build_tvossimulator_x64_release_AllSubsets_Mono + - Build_windows_x64_release_CrossAOT_Mono + - installer__coreclr__windows_x64_Release_ + - installer__coreclr__windows_x86_Release_ + - installer__coreclr__windows_arm64_Release_ - # - ${{ if eq(variables.isOfficialBuild, true) }}: - # - template: /eng/pipelines/official/stages/publish.yml - # parameters: - # isOfficialBuild: ${{ variables.isOfficialBuild }} + - ${{ if eq(variables.isOfficialBuild, true) }}: + - template: /eng/pipelines/official/stages/publish.yml + parameters: + isOfficialBuild: ${{ variables.isOfficialBuild }} From 0e7a9201a12dec77a10a773725f9bbaa5b3f0742 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 19 Jun 2023 18:50:18 +0200 Subject: [PATCH 05/87] Test build configuration --- eng/pipelines/runtime.yml | 48 +++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index cc9563d799624..4ce72603d3192 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1459,27 +1459,27 @@ extends: # timeoutInMinutes: 95 # condition: eq(variables['isRollingBuild'], true) - # - # 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 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s clr.aot+libs+libs.tests -c $(_BuildConfig) -rc $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true - timeoutInMinutes: 180 - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true \ No newline at end of file + # # + # # 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 + # jobParameters: + # testGroup: innerloop + # nameSuffix: AllSubsets_Mono + # buildArgs: -s clr.aot+libs+libs.tests -c $(_BuildConfig) -rc $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true + # timeoutInMinutes: 180 + # # extra steps, run tests + # extraStepsTemplate: /eng/pipelines/libraries/helix.yml + # extraStepsParameters: + # creator: dotnet-bot + # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + # extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true \ No newline at end of file From 1aca721280df4cf7666f32c9cd6900cd28edfd4c Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 19 Jun 2023 18:54:14 +0200 Subject: [PATCH 06/87] Test build configuration --- eng/pipelines/runtime.yml | 48 +++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 4ce72603d3192..224ecb47a8ab3 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1459,27 +1459,27 @@ extends: # timeoutInMinutes: 95 # condition: eq(variables['isRollingBuild'], true) - # # - # # 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 - # jobParameters: - # testGroup: innerloop - # nameSuffix: AllSubsets_Mono - # buildArgs: -s clr.aot+libs+libs.tests -c $(_BuildConfig) -rc $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true - # timeoutInMinutes: 180 - # # extra steps, run tests - # extraStepsTemplate: /eng/pipelines/libraries/helix.yml - # extraStepsParameters: - # creator: dotnet-bot - # testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - # extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true \ No newline at end of file + # + # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size + # Build the whole product using Native AOT 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: coreclr + platforms: + - ios_arm64 + # - tvos_arm64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_NativeAOT + buildArgs: -s clr.aot+libs+libs.tests -c $(_BuildConfig) -rc $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true + timeoutInMinutes: 180 + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true \ No newline at end of file From 774ed6bd918ab0b5bbd914138c6837cb01c493fc Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 19 Jun 2023 22:46:33 +0200 Subject: [PATCH 07/87] Test build configuration --- eng/pipelines/common/global-build-job.yml | 4 +++- eng/pipelines/runtime.yml | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 6aa9abe6a79f3..97b3ac653c6de 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -2,6 +2,7 @@ parameters: buildConfig: '' nameSuffix: '' buildArgs: '' + runtimeBuildArgs: '' archType: '' hostedOs: '' hostedArch: '' @@ -211,10 +212,11 @@ jobs: # 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 + clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -os ${{ parameters.osGroup }} -arch ${{ parameters.archType }} -c ${{ parameters.buildConfig }} + ${{ parameters.runtimeBuildArgs }} displayName: "Build Native AOT runtime packs" - ${{ if in(parameters.osGroup, 'osx', 'ios', 'tvos', 'android') }}: diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 224ecb47a8ab3..396b83bb7ea4c 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1475,7 +1475,8 @@ extends: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT - buildArgs: -s clr.aot+libs+libs.tests -c $(_BuildConfig) -rc $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true + buildArgs: -s clr.aot+libs+libs.tests -c $(_BuildConfig) -rc $(_BuildConfig) + runtimeBuildArgs: /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true timeoutInMinutes: 180 # extra steps, run tests extraStepsTemplate: /eng/pipelines/libraries/helix.yml From 034fff1cb2e20f9af6a4f8d2d456f89c0e2cc032 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 20 Jun 2023 17:03:09 +0200 Subject: [PATCH 08/87] Add properties to the proxy AOT project --- eng/testing/tests.ioslike.targets | 2 ++ src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 8544f34bfb7bf..7dfe2c85ad169 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -103,6 +103,8 @@ <_ApplePropertyNames Include="HybridGlobalization" /> <_ApplePropertyNames Include="AssemblyName" /> <_ApplePropertyNames Include="MonoEnableLLVM" /> + <_ApplePropertyNames Include="MainLibraryFileName" /> + <_ApplePropertyNames Include="UseConsoleUITemplate" /> <_ApplePropertiesToPass Include="$(%(_ApplePropertyNames.Identity))" diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index 8ae5a9a99dca3..fef741b0cc5da 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -29,7 +29,7 @@ $(OriginalPublishDir) $(TestRootDir)AppBundle\ - $(OriginalPublishDir)AppleTestRunner.dll + $(OriginalPublishDir)AppleTestRunner.dll true From abfe7c1c00682157a63c364ae85b383b3acf488f Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 20 Jun 2023 19:28:31 +0200 Subject: [PATCH 09/87] Add AppName to the proxy props --- eng/testing/tests.ioslike.targets | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 7dfe2c85ad169..51c7e1557816e 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -101,6 +101,7 @@ <_ApplePropertyNames Include="InvariantGlobalization" /> <_ApplePropertyNames Include="HybridGlobalization" /> + <_ApplePropertyNames Include="AppName" /> <_ApplePropertyNames Include="AssemblyName" /> <_ApplePropertyNames Include="MonoEnableLLVM" /> <_ApplePropertyNames Include="MainLibraryFileName" /> From 09c6097e6dbe9fdb7b5cd7398a913a46cd6dd963 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 20 Jun 2023 23:58:17 +0200 Subject: [PATCH 10/87] Remove AppName from the proxy props --- eng/testing/tests.ioslike.targets | 1 - 1 file changed, 1 deletion(-) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 51c7e1557816e..7dfe2c85ad169 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -101,7 +101,6 @@ <_ApplePropertyNames Include="InvariantGlobalization" /> <_ApplePropertyNames Include="HybridGlobalization" /> - <_ApplePropertyNames Include="AppName" /> <_ApplePropertyNames Include="AssemblyName" /> <_ApplePropertyNames Include="MonoEnableLLVM" /> <_ApplePropertyNames Include="MainLibraryFileName" /> From 36931555d8e32f44b1eaaf771bace71ff843921b Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 21 Jun 2023 13:21:05 +0200 Subject: [PATCH 11/87] Add ILC payload to Helix --- eng/testing/tests.ioslike.targets | 13 ++++++++++++- src/libraries/sendtohelix-mobile.targets | 8 ++++++++ src/libraries/tests.proj | 4 ++-- .../msbuild/apple/build/AppleBuild.LocalBuild.props | 7 +++++++ src/mono/msbuild/apple/build/AppleBuild.props | 6 ++++-- 5 files changed, 33 insertions(+), 5 deletions(-) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 7dfe2c85ad169..7b8b552a07761 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -95,7 +95,11 @@ - + + <_IsApplePlatform>true + true + <_targetOS>$(TargetOS) + @@ -105,6 +109,13 @@ <_ApplePropertyNames Include="MonoEnableLLVM" /> <_ApplePropertyNames Include="MainLibraryFileName" /> <_ApplePropertyNames Include="UseConsoleUITemplate" /> + <_ApplePropertyNames Include="UseNativeAOTRuntime" /> + <_ApplePropertyNames Include="NativeLib" /> + <_ApplePropertyNames Include="CustomNativeMain" /> + <_ApplePropertyNames Include="NativeCompilationDuringPublish" /> + <_ApplePropertyNames Include="_IsApplePlatform" /> + <_ApplePropertyNames Include="TargetsAppleMobile" /> + <_ApplePropertyNames Include="_targetOS" /> <_ApplePropertiesToPass Include="$(%(_ApplePropertyNames.Identity))" diff --git a/src/libraries/sendtohelix-mobile.targets b/src/libraries/sendtohelix-mobile.targets index 3374d38e45c7f..54b2f562fb2bc 100644 --- a/src/libraries/sendtohelix-mobile.targets +++ b/src/libraries/sendtohelix-mobile.targets @@ -60,6 +60,11 @@ + + $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) + $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) + + @@ -69,6 +74,9 @@ + + + diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index af3dfd362c8fd..e05e63ac658df 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -603,8 +603,8 @@ - + $([MSBuild]::NormalizeDirectory($(BuildBaseDir), 'LibraryBuilder')) $([MSBuild]::NormalizePath($(BuildBaseDir), 'cross')) + $([MSBuild]::NormalizeDirectory('$(BuildBaseDir)', 'ilc')) + $([MSBuild]::NormalizePath('$(BuildBaseDir)', 'BuildIntegration')) + $([MSBuild]::NormalizePath('$(ILCompilerTargetsDir)', 'Microsoft.DotNet.ILCompiler.SingleEntry.targets')) + $(CoreCLRILCompilerDir) + $([MSBuild]::NormalizeDirectory('$(BuildBaseDir)', 'aotsdk')) + $(MicrosoftNetCoreAppRuntimePackLibDir) + $(MicrosoftNetCoreAppRuntimePackNativeDir) <_MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(MonoAotCrossDir), 'mono-aot-cross')) <_MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">$(_MonoAotCrossCompilerPath).exe diff --git a/src/mono/msbuild/apple/build/AppleBuild.props b/src/mono/msbuild/apple/build/AppleBuild.props index 63de9d780346e..4b6a65746f2f4 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.props +++ b/src/mono/msbuild/apple/build/AppleBuild.props @@ -21,8 +21,10 @@ <_IsLibraryMode Condition="'$(NativeLib)' != ''">true - <_AotCompileTargetName Condition="'$(RunAOTCompilation)' == 'true'">_AppleAotCompile; - <_AotCompileTargetName Condition="'$(UseNativeAOTRuntime)' == 'true'">_AppleNativeAotCompile; + + + <_AotCompileTargetName>_AppleNativeAotCompile; + ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink Publish From 5344255c4e7652a095f39945e4fd4ee93804eabd Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 23 Jun 2023 20:10:26 +0200 Subject: [PATCH 12/87] Update the Helix targets to support Native AOT tests --- eng/testing/tests.ioslike.targets | 13 ++++--- eng/testing/tests.mobile.targets | 13 ------- src/libraries/sendtohelix-mobile.targets | 12 ++++--- src/libraries/tests.proj | 4 +-- .../apple/build/AppleBuild.LocalBuild.props | 4 ++- src/mono/msbuild/apple/build/AppleBuild.props | 4 +-- .../msbuild/apple/build/AppleBuild.targets | 2 ++ .../apple/data/ProxyProjectForAOTOnHelix.proj | 34 +++++++++++++------ src/mono/sample/iOS/Program.csproj | 2 +- 9 files changed, 46 insertions(+), 42 deletions(-) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 7b8b552a07761..42e18a8c9dfcf 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -28,6 +28,10 @@ xharness apple test --app "$app" --output-directory "$output_directory" --target "$target" --timeout "$timeout" --xcode "$xcode_path" -v --launch-timeout "$launch_timeout" $(_ResetSimulatorSwitch) $(_SignalAppEndSwitch) -- $(_AOTBuildCommand) $(_AfterBuildCommands) + + <_targetOS>$(TargetOS) + <_IsApplePlatform>true + true - - <_IsApplePlatform>true - true - <_targetOS>$(TargetOS) - @@ -143,14 +142,14 @@ OutputFile="$(BundleDir)publish\ProxyProjectForAOTOnHelix.props" /> - + true - AppleTestRunner.dll + AppleTestRunner.dll $(PublishDir) $(BundleDir) diff --git a/eng/testing/tests.mobile.targets b/eng/testing/tests.mobile.targets index 7b019f6c40603..db2ee02ecf8b2 100644 --- a/eng/testing/tests.mobile.targets +++ b/eng/testing/tests.mobile.targets @@ -17,19 +17,6 @@ true - - $([MSBuild]::NormalizePath('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc-published', 'netstandard', 'ILCompiler.Build.Tasks.dll')) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) - $(IlcPath) - $(CoreCLRAotSdkDir) - $(LibrariesAllBinArtifactsPath) - $(LibrariesAllBinArtifactsPath) - true - true - false - true - - $([MSBuild]::NormalizeDirectory('$(CoreCLRToolPath)', 'dotnet-pgo')) $([MSBuild]::NormalizePath('$(DotnetPgoToolDir)', 'dotnet-pgo')) diff --git a/src/libraries/sendtohelix-mobile.targets b/src/libraries/sendtohelix-mobile.targets index 54b2f562fb2bc..747084b759eac 100644 --- a/src/libraries/sendtohelix-mobile.targets +++ b/src/libraries/sendtohelix-mobile.targets @@ -63,20 +63,22 @@ $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) + $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', '..', '.packages', 'microsoft.net.illink.tasks', '$(MicrosoftNETILLinkTasksVersion)')) - + - + - - - + + + + diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index e05e63ac658df..af3dfd362c8fd 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -603,8 +603,8 @@ - + $([MSBuild]::NormalizePath($(BuildBaseDir), 'cross')) $([MSBuild]::NormalizeDirectory('$(BuildBaseDir)', 'ilc')) $([MSBuild]::NormalizePath('$(BuildBaseDir)', 'BuildIntegration')) - $([MSBuild]::NormalizePath('$(ILCompilerTargetsDir)', 'Microsoft.DotNet.ILCompiler.SingleEntry.targets')) + $([MSBuild]::NormalizePath('$(ILCompilerTargetsDir)', 'Microsoft.DotNet.ILCompiler.SingleEntry.targets')) $(CoreCLRILCompilerDir) $([MSBuild]::NormalizeDirectory('$(BuildBaseDir)', 'aotsdk')) $(MicrosoftNetCoreAppRuntimePackLibDir) $(MicrosoftNetCoreAppRuntimePackNativeDir) + $([MSBuild]::NormalizePath('$(BuildBaseDir)', 'microsoft.net.illink.tasks', 'build', 'Microsoft.NET.ILLink.targets')) + $([MSBuild]::NormalizePath('$(BuildBaseDir)', 'microsoft.net.illink.tasks', 'tools', '$(_NetCoreAppCurrent)', 'ILLink.Tasks.dll')) <_MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(MonoAotCrossDir), 'mono-aot-cross')) <_MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">$(_MonoAotCrossCompilerPath).exe diff --git a/src/mono/msbuild/apple/build/AppleBuild.props b/src/mono/msbuild/apple/build/AppleBuild.props index 4b6a65746f2f4..9e0d5ae37d4d0 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.props +++ b/src/mono/msbuild/apple/build/AppleBuild.props @@ -21,9 +21,7 @@ <_IsLibraryMode Condition="'$(NativeLib)' != ''">true - - - <_AotCompileTargetName>_AppleNativeAotCompile; + <_AotCompileTargetName Condition="'$(_AotCompileTargetName)' == ''">_AppleAotCompile; ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink Publish diff --git a/src/mono/msbuild/apple/build/AppleBuild.targets b/src/mono/msbuild/apple/build/AppleBuild.targets index 390da1daeacd4..926ca1e13622b 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.targets @@ -18,6 +18,8 @@ + diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index fef741b0cc5da..86c9fcc4d8bfe 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -1,5 +1,5 @@ - - + + true @@ -8,16 +8,32 @@ $(MSBuildThisFileDirectory)..\apple_build\ true - $(TestRootDir)..\publish\ + $(TestRootDir)..\publish\ + $(HELIX_WORKITEM_ROOT)\publish\ $(OriginalPublishDir)..\extraFiles\ - $(TestRootDir)\obj\ + $(OriginalPublishDir) + + <_AotCompileTargetName Condition="'$(UseNativeAOTRuntime)' != 'true'">_AppleAotCompile; + <_AotCompileTargetName Condition="'$(UseNativeAOTRuntime)' == 'true'">_AppleNativeAotCompile; + + _PrepareForAppleBuildAppOnHelix; + _InitializeCommonProperties; + _BeforeAppleBuild; + _AppleResolveReferences; + $(_AotCompileTargetName) + _BuildNativeLibrary; + _AppleGenerateAppBundle; + _AfterAppleBuild; + _AfterAppleBuildOnHelix; + + true - _PrepareForAppleBuildAppOnHelix;$(AppleBuildDependsOn);_AfterAppleBuildOnHelix - - <_PropsFile>$(MSBuildThisFileDirectory)$(MSBuildThisFileName).props - + + + + @@ -75,6 +91,4 @@ - - diff --git a/src/mono/sample/iOS/Program.csproj b/src/mono/sample/iOS/Program.csproj index 0355f08d3f17d..b3dec9af3f69d 100644 --- a/src/mono/sample/iOS/Program.csproj +++ b/src/mono/sample/iOS/Program.csproj @@ -1,6 +1,6 @@ - + Exe bin $(MSBuildThisFileDirectory)obj/ $(NetCoreAppCurrent) From 7c426a52c866dcc2823f714dd6823bd3d7ee1623 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 23 Jun 2023 20:39:46 +0200 Subject: [PATCH 13/87] Fix ILLink and ILC paths on Helix --- src/libraries/sendtohelix-mobile.targets | 2 +- src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libraries/sendtohelix-mobile.targets b/src/libraries/sendtohelix-mobile.targets index 747084b759eac..61e6d08df7053 100644 --- a/src/libraries/sendtohelix-mobile.targets +++ b/src/libraries/sendtohelix-mobile.targets @@ -78,7 +78,7 @@ - + diff --git a/src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props b/src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props index e5c58588804e5..23645fc9f82bb 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props +++ b/src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props @@ -58,12 +58,12 @@ $([MSBuild]::NormalizePath($(BuildBaseDir), 'cross')) $([MSBuild]::NormalizeDirectory('$(BuildBaseDir)', 'ilc')) $([MSBuild]::NormalizePath('$(BuildBaseDir)', 'BuildIntegration')) - $([MSBuild]::NormalizePath('$(ILCompilerTargetsDir)', 'Microsoft.DotNet.ILCompiler.SingleEntry.targets')) + $([MSBuild]::NormalizePath('$(ILCompilerTargetsDir)', 'Microsoft.DotNet.ILCompiler.SingleEntry.targets')) $(CoreCLRILCompilerDir) $([MSBuild]::NormalizeDirectory('$(BuildBaseDir)', 'aotsdk')) $(MicrosoftNetCoreAppRuntimePackLibDir) $(MicrosoftNetCoreAppRuntimePackNativeDir) - $([MSBuild]::NormalizePath('$(BuildBaseDir)', 'microsoft.net.illink.tasks', 'build', 'Microsoft.NET.ILLink.targets')) + $([MSBuild]::NormalizePath('$(BuildBaseDir)', 'microsoft.net.illink.tasks', 'build', 'Microsoft.NET.ILLink.targets')) $([MSBuild]::NormalizePath('$(BuildBaseDir)', 'microsoft.net.illink.tasks', 'tools', '$(_NetCoreAppCurrent)', 'ILLink.Tasks.dll')) <_MonoAotCrossCompilerPath>$([MSBuild]::NormalizePath($(MonoAotCrossDir), 'mono-aot-cross')) <_MonoAotCrossCompilerPath Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">$(_MonoAotCrossCompilerPath).exe From 30ae9ebe79a56e7be6eec888fdda1fe5c8f2945f Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 23 Jun 2023 22:51:51 +0200 Subject: [PATCH 14/87] Import Directory.Build.props/targets to initialize local applebuild props --- src/coreclr/nativeaot/BuildIntegration.payload | 1 + src/mono/msbuild/apple/build.payload | 1 + src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj | 2 ++ src/mono/msbuild/common.payload | 1 + src/mono/sample/iOS/Program.csproj | 2 +- 5 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 src/coreclr/nativeaot/BuildIntegration.payload create mode 100644 src/mono/msbuild/apple/build.payload create mode 100644 src/mono/msbuild/common.payload diff --git a/src/coreclr/nativeaot/BuildIntegration.payload b/src/coreclr/nativeaot/BuildIntegration.payload new file mode 100644 index 0000000000000..709d239705ff9 --- /dev/null +++ b/src/coreclr/nativeaot/BuildIntegration.payload @@ -0,0 +1 @@ +https://helixde107v0xdeko0k025g8.blob.core.windows.net/helix-job-594c4fae-a33f-43af-875e-1f70eeea014011df35b3f204dbcbb/c5e4f336-564d-4f3e-bf03-22021eb2f84c.zip?helixlogtype=result \ No newline at end of file diff --git a/src/mono/msbuild/apple/build.payload b/src/mono/msbuild/apple/build.payload new file mode 100644 index 0000000000000..d2bf6aaf0ccec --- /dev/null +++ b/src/mono/msbuild/apple/build.payload @@ -0,0 +1 @@ +https://helixde107v0xdeko0k025g8.blob.core.windows.net/helix-job-b0ac80cd-fa9e-4c5d-9fbb-3357f0d927483710aa7587947f4a9/59e8e7a2-1e29-4c05-b557-75082442190f.zip?helixlogtype=result \ No newline at end of file diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index 86c9fcc4d8bfe..10c22a723ddde 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -1,4 +1,5 @@ + true @@ -91,4 +92,5 @@ + diff --git a/src/mono/msbuild/common.payload b/src/mono/msbuild/common.payload new file mode 100644 index 0000000000000..1ddc0da4de934 --- /dev/null +++ b/src/mono/msbuild/common.payload @@ -0,0 +1 @@ +https://helixde107v0xdeko0k025g8.blob.core.windows.net/helix-job-6d7b1b6a-2fec-42a3-8882-949b7c61095bed080542d024affa8/60d56f76-0cd2-4c89-b8d9-89c24c835b14.zip?helixlogtype=result \ No newline at end of file diff --git a/src/mono/sample/iOS/Program.csproj b/src/mono/sample/iOS/Program.csproj index b3dec9af3f69d..0355f08d3f17d 100644 --- a/src/mono/sample/iOS/Program.csproj +++ b/src/mono/sample/iOS/Program.csproj @@ -1,6 +1,6 @@ - Exe + bin $(MSBuildThisFileDirectory)obj/ $(NetCoreAppCurrent) From fff4849cdd551c81551637c22f5a03d9941f7a4f Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 24 Jun 2023 00:31:10 +0200 Subject: [PATCH 15/87] Remove the SDK reference to test the CI --- src/coreclr/nativeaot/BuildIntegration.payload | 1 - src/mono/msbuild/apple/build.payload | 1 - src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj | 2 +- src/mono/msbuild/common.payload | 1 - 4 files changed, 1 insertion(+), 4 deletions(-) delete mode 100644 src/coreclr/nativeaot/BuildIntegration.payload delete mode 100644 src/mono/msbuild/apple/build.payload delete mode 100644 src/mono/msbuild/common.payload diff --git a/src/coreclr/nativeaot/BuildIntegration.payload b/src/coreclr/nativeaot/BuildIntegration.payload deleted file mode 100644 index 709d239705ff9..0000000000000 --- a/src/coreclr/nativeaot/BuildIntegration.payload +++ /dev/null @@ -1 +0,0 @@ -https://helixde107v0xdeko0k025g8.blob.core.windows.net/helix-job-594c4fae-a33f-43af-875e-1f70eeea014011df35b3f204dbcbb/c5e4f336-564d-4f3e-bf03-22021eb2f84c.zip?helixlogtype=result \ No newline at end of file diff --git a/src/mono/msbuild/apple/build.payload b/src/mono/msbuild/apple/build.payload deleted file mode 100644 index d2bf6aaf0ccec..0000000000000 --- a/src/mono/msbuild/apple/build.payload +++ /dev/null @@ -1 +0,0 @@ -https://helixde107v0xdeko0k025g8.blob.core.windows.net/helix-job-b0ac80cd-fa9e-4c5d-9fbb-3357f0d927483710aa7587947f4a9/59e8e7a2-1e29-4c05-b557-75082442190f.zip?helixlogtype=result \ No newline at end of file diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index 10c22a723ddde..a0b33219820d2 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -1,4 +1,4 @@ - + diff --git a/src/mono/msbuild/common.payload b/src/mono/msbuild/common.payload deleted file mode 100644 index 1ddc0da4de934..0000000000000 --- a/src/mono/msbuild/common.payload +++ /dev/null @@ -1 +0,0 @@ -https://helixde107v0xdeko0k025g8.blob.core.windows.net/helix-job-6d7b1b6a-2fec-42a3-8882-949b7c61095bed080542d024affa8/60d56f76-0cd2-4c89-b8d9-89c24c835b14.zip?helixlogtype=result \ No newline at end of file From df51223a4f63be97f4a329fa959ff639e2a4ff06 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 24 Jun 2023 08:53:52 +0200 Subject: [PATCH 16/87] Update run script to include Native AOT params --- eng/pipelines/runtime.yml | 2 +- eng/testing/tests.ioslike.targets | 2 +- src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 54af3379f57b8..1fd6fc15c0c4f 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1468,7 +1468,7 @@ extends: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT buildArgs: -s clr.aot+libs+libs.tests -c $(_BuildConfig) -rc $(_BuildConfig) - runtimeBuildArgs: /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true + runtimeBuildArgs: /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true /p:ContinuousIntegrationBuild=true timeoutInMinutes: 180 # extra steps, run tests extraStepsTemplate: /eng/pipelines/libraries/helix.yml diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 42e18a8c9dfcf..58c08411e88e2 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -16,7 +16,7 @@ <_AOTBuildCommand Condition="'$(ContinuousIntegrationBuild)' != 'true'">$(_AOTBuildCommand) /p:RuntimeSrcDir=$(RepoRoot) /p:RuntimeConfig=$(Configuration) - <_AOTBuildCommand>$(_AOTBuildCommand) /p:XHARNESS_EXECUTION_DIR="$XHARNESS_EXECUTION_DIR" /p:RunAOTCompilation=$(RunAOTCompilation) /p:TargetOS=$(TargetOS) /p:TargetArchitecture=$(TargetArchitecture) /p:MonoForceInterpreter=$(MonoForceInterpreter) /p:MonoEnableLLVM=true /p:DevTeamProvisioning=$(DevTeamProvisioning) /p:UsePortableRuntimePack=true /p:Configuration=$(Configuration) + <_AOTBuildCommand>$(_AOTBuildCommand) /p:XHARNESS_EXECUTION_DIR="$XHARNESS_EXECUTION_DIR" /p:RunAOTCompilation=$(RunAOTCompilation) /p:UseNativeAOTRuntime=$(UseNativeAOTRuntime) /p:TargetOS=$(TargetOS) /p:TargetArchitecture=$(TargetArchitecture) /p:MonoForceInterpreter=$(MonoForceInterpreter) /p:MonoEnableLLVM=true /p:DevTeamProvisioning=$(DevTeamProvisioning) /p:UsePortableRuntimePack=true /p:Configuration=$(Configuration) <_AOTBuildCommand>$(_AOTBuildCommand) <_ResetSimulatorSwitch Condition="'$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'tvossimulator'">--reset-simulator diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index a0b33219820d2..10c22a723ddde 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -1,4 +1,4 @@ - + From 0e7325e739632a3b69e6cf8e9e15521a3fb89da8 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 24 Jun 2023 11:12:08 +0200 Subject: [PATCH 17/87] Update sendtohelix conditions to use runtimeFlavor --- src/libraries/sendtohelix-mobile.targets | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/libraries/sendtohelix-mobile.targets b/src/libraries/sendtohelix-mobile.targets index 61e6d08df7053..30f9815c11e23 100644 --- a/src/libraries/sendtohelix-mobile.targets +++ b/src/libraries/sendtohelix-mobile.targets @@ -60,7 +60,7 @@ - + $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', '..', '.packages', 'microsoft.net.illink.tasks', '$(MicrosoftNETILLinkTasksVersion)')) @@ -69,15 +69,15 @@ - + - + - - - + + + From ce43877d19a523003eed5515e9d879ece1453828 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 24 Jun 2023 12:42:18 +0200 Subject: [PATCH 18/87] Add TargetFramework property to AppleBuild on Helix --- src/libraries/sendtohelix-mobile.targets | 2 +- src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/libraries/sendtohelix-mobile.targets b/src/libraries/sendtohelix-mobile.targets index 30f9815c11e23..dc5c3526adb57 100644 --- a/src/libraries/sendtohelix-mobile.targets +++ b/src/libraries/sendtohelix-mobile.targets @@ -58,12 +58,12 @@ <_XHarnessAppleCustomCommand Condition="'$(NeedsiOSSDK)' == 'true'"> source build-apple-app.sh + $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', '..', '.packages', 'microsoft.net.illink.tasks', '$(MicrosoftNETILLinkTasksVersion)')) $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) - $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', '..', '.packages', 'microsoft.net.illink.tasks', '$(MicrosoftNETILLinkTasksVersion)')) diff --git a/src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props b/src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props index 23645fc9f82bb..819d61d9a9a8d 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props +++ b/src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props @@ -23,7 +23,8 @@ <_NetCoreAppCurrent>net8.0 - <_NetCoreAppToolCurrent>net8.0 + $(_NetCoreAppCurrent) + <_NetCoreAppToolCurrent>$(_NetCoreAppCurrent) false From 6304c8323a8e3302a6dacf201eb78ace9bc91eff Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 24 Jun 2023 14:56:08 +0200 Subject: [PATCH 19/87] Use AppendTargetFrameworkToOutputPath to fix the Native AOT publish path --- src/libraries/tests.proj | 3 +-- src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index af3dfd362c8fd..07ff5f5a2226d 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -511,7 +511,7 @@ - + @@ -615,7 +615,6 @@ - diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index 10c22a723ddde..2a93dfe4cfdcb 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -1,5 +1,4 @@ - true @@ -13,6 +12,7 @@ $(HELIX_WORKITEM_ROOT)\publish\ $(OriginalPublishDir)..\extraFiles\ $(OriginalPublishDir) + false <_AotCompileTargetName Condition="'$(UseNativeAOTRuntime)' != 'true'">_AppleAotCompile; <_AotCompileTargetName Condition="'$(UseNativeAOTRuntime)' == 'true'">_AppleNativeAotCompile; @@ -28,7 +28,6 @@ _AfterAppleBuildOnHelix; true - @@ -92,5 +91,4 @@ - From 6eb91b730798040a04934d2b3e59ba6b4bbeea4f Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 24 Jun 2023 16:47:50 +0200 Subject: [PATCH 20/87] Add exit code for functional tests --- src/mono/sample/iOS-NativeAOT/Program.csproj | 1 + src/mono/sample/iOS/Program.csproj | 1 + 2 files changed, 2 insertions(+) diff --git a/src/mono/sample/iOS-NativeAOT/Program.csproj b/src/mono/sample/iOS-NativeAOT/Program.csproj index 6408df44882d9..77bf3c886df8f 100644 --- a/src/mono/sample/iOS-NativeAOT/Program.csproj +++ b/src/mono/sample/iOS-NativeAOT/Program.csproj @@ -13,6 +13,7 @@ $(OutputPath)/publish static true + 42 false Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink diff --git a/src/mono/sample/iOS/Program.csproj b/src/mono/sample/iOS/Program.csproj index 0355f08d3f17d..7afca88b0d403 100644 --- a/src/mono/sample/iOS/Program.csproj +++ b/src/mono/sample/iOS/Program.csproj @@ -9,6 +9,7 @@ $(DefineConstants);CI_TEST HelloiOS $(AssemblyName).dll + 42 true true From 228ba3260f10eea800c29e42c77d1037a65df290 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 24 Jun 2023 18:26:13 +0200 Subject: [PATCH 21/87] Add exit code for functional tests --- src/libraries/sendtohelix-mobile.targets | 1 + src/mono/sample/iOS-NativeAOT/Program.csproj | 1 - src/mono/sample/iOS/Program.csproj | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/libraries/sendtohelix-mobile.targets b/src/libraries/sendtohelix-mobile.targets index dc5c3526adb57..38a7b6e00ac73 100644 --- a/src/libraries/sendtohelix-mobile.targets +++ b/src/libraries/sendtohelix-mobile.targets @@ -97,6 +97,7 @@ $(AppleTestTarget) $(_workItemTimeout) $(_XHarnessAppleCustomCommand) + 42 false Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink diff --git a/src/mono/sample/iOS/Program.csproj b/src/mono/sample/iOS/Program.csproj index 7afca88b0d403..0355f08d3f17d 100644 --- a/src/mono/sample/iOS/Program.csproj +++ b/src/mono/sample/iOS/Program.csproj @@ -9,7 +9,6 @@ $(DefineConstants);CI_TEST HelloiOS $(AssemblyName).dll - 42 true true From f42f06a8c4fd43e68815c1a493d5415bafded845 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 24 Jun 2023 19:37:42 +0200 Subject: [PATCH 22/87] Fix mono sample to output executable --- eng/testing/tests.mobile.targets | 2 +- src/libraries/sendtohelix-mobile.targets | 1 - src/mono/sample/iOS/Program.csproj | 7 ++++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/eng/testing/tests.mobile.targets b/eng/testing/tests.mobile.targets index db2ee02ecf8b2..284e8138549a5 100644 --- a/eng/testing/tests.mobile.targets +++ b/eng/testing/tests.mobile.targets @@ -8,7 +8,7 @@ $([MSBuild]::NormalizePath('$(BundleDir)', '$(RunScriptOutputName)')) true - Publish + Publish true diff --git a/src/libraries/sendtohelix-mobile.targets b/src/libraries/sendtohelix-mobile.targets index 38a7b6e00ac73..dc5c3526adb57 100644 --- a/src/libraries/sendtohelix-mobile.targets +++ b/src/libraries/sendtohelix-mobile.targets @@ -97,7 +97,6 @@ $(AppleTestTarget) $(_workItemTimeout) $(_XHarnessAppleCustomCommand) - 42 + Exe bin $(MSBuildThisFileDirectory)obj/ $(NetCoreAppCurrent) iossimulator $(TargetOS)-$(TargetArchitecture) $(DefineConstants);CI_TEST + Build HelloiOS $(AssemblyName).dll @@ -26,6 +27,10 @@ Publish + + + + From a667de781a00243291e02eb3b7bec0e266d5d9ce Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 24 Jun 2023 23:13:37 +0200 Subject: [PATCH 23/87] Add publish path to the mono sample --- src/mono/sample/iOS/Program.csproj | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/mono/sample/iOS/Program.csproj b/src/mono/sample/iOS/Program.csproj index 452faec9018ab..5bfefe13ef8ce 100644 --- a/src/mono/sample/iOS/Program.csproj +++ b/src/mono/sample/iOS/Program.csproj @@ -2,14 +2,15 @@ Exe bin - $(MSBuildThisFileDirectory)obj/ + $(MSBuildThisFileDirectory)/obj/ $(NetCoreAppCurrent) iossimulator $(TargetOS)-$(TargetArchitecture) $(DefineConstants);CI_TEST - Build + Publish HelloiOS $(AssemblyName).dll + $(OutputPath)/publish true true From e0ec3aa1b0b3e7038847f209bbd6f7668259c64b Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 25 Jun 2023 08:37:39 +0200 Subject: [PATCH 24/87] Disable size optimization in mono app --- src/mono/sample/iOS/Program.csproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mono/sample/iOS/Program.csproj b/src/mono/sample/iOS/Program.csproj index 5bfefe13ef8ce..717232a909d14 100644 --- a/src/mono/sample/iOS/Program.csproj +++ b/src/mono/sample/iOS/Program.csproj @@ -13,10 +13,10 @@ $(OutputPath)/publish true - true - Link + + true - true + true true From a6810876bca92b003499705e773ff705a171ee6d Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 25 Jun 2023 10:52:15 +0200 Subject: [PATCH 25/87] Update ExpectedExitCode to be 42 --- src/libraries/sendtohelix-mobile.targets | 1 + src/mono/sample/iOS-NativeAOT/Program.csproj | 1 + src/mono/sample/iOS/Program.csproj | 35 ++++++-------------- 3 files changed, 12 insertions(+), 25 deletions(-) diff --git a/src/libraries/sendtohelix-mobile.targets b/src/libraries/sendtohelix-mobile.targets index dc5c3526adb57..1d767b9b29f5e 100644 --- a/src/libraries/sendtohelix-mobile.targets +++ b/src/libraries/sendtohelix-mobile.targets @@ -97,6 +97,7 @@ $(AppleTestTarget) $(_workItemTimeout) $(_XHarnessAppleCustomCommand) + $(ExpectedExitCode) - + iossimulator true - - - true - true - true - false - - CopyFilesToPublishDirectory - CopyFilesToPublishDirectory;Build - Publish + true + Link + true + $(DefineConstants);CI_TEST + 42 - - - - diagnostics_tracing;marshal-ilgen - - - - From eb2303682f8244c81fe97e4458d9d1f3f90f254d Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 25 Jun 2023 13:12:48 +0200 Subject: [PATCH 26/87] Optimize bundle size in mono sample --- src/libraries/sendtohelix-mobile.targets | 2 +- src/mono/sample/iOS/Program.csproj | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libraries/sendtohelix-mobile.targets b/src/libraries/sendtohelix-mobile.targets index 1d767b9b29f5e..0bdd0108875d6 100644 --- a/src/libraries/sendtohelix-mobile.targets +++ b/src/libraries/sendtohelix-mobile.targets @@ -97,7 +97,7 @@ $(AppleTestTarget) $(_workItemTimeout) $(_XHarnessAppleCustomCommand) - $(ExpectedExitCode) + 42 - false + false false diff --git a/src/mono/sample/iOS-NativeAOT/Program.csproj b/src/mono/sample/iOS-NativeAOT/Program.csproj index 6408df44882d9..fd6c0ede1f139 100644 --- a/src/mono/sample/iOS-NativeAOT/Program.csproj +++ b/src/mono/sample/iOS-NativeAOT/Program.csproj @@ -10,9 +10,14 @@ HelloiOS $(DefineConstants);CI_TEST true - $(OutputPath)/publish + $(MSBuildThisFileDirectory)/$(OutputPath)/publish static true + <_AotCompileTargetName>_AppleNativeAotCompile; + true + false + True + false false Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink @@ -56,53 +61,6 @@ - - - - $(MSBuildThisFileDirectory)$(PublishDir)\app - True - false - adhoc - false - - - - <_LinkerFlagsToDrop Include="@(NativeFramework->'-framework %(Identity)')" /> - - - <_NativeDependencies Include="%(ManagedBinary.IlcOutputFile)" /> - - - - - - - - - - - - - true iossimulator true - true - Link + + true + Link true $(DefineConstants);CI_TEST From 2eecc7e11b7ad904672834f11208df306fadcd9b Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 25 Jun 2023 18:51:58 +0200 Subject: [PATCH 30/87] Tests return 0 when run on iOS --- src/libraries/sendtohelix-mobile.targets | 4 ---- src/mono/sample/iOS-NativeAOT/Program.csproj | 1 + src/mono/sample/iOS/Program.cs | 4 ++++ src/mono/sample/iOS/Program.csproj | 1 + 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/libraries/sendtohelix-mobile.targets b/src/libraries/sendtohelix-mobile.targets index d6e0f7edeec23..dc5c3526adb57 100644 --- a/src/libraries/sendtohelix-mobile.targets +++ b/src/libraries/sendtohelix-mobile.targets @@ -99,10 +99,6 @@ $(_XHarnessAppleCustomCommand) - - 42 - - diff --git a/src/mono/sample/iOS-NativeAOT/Makefile b/src/mono/sample/iOS-NativeAOT/Makefile index 2ef3ea826d5d5..da07b0130414e 100644 --- a/src/mono/sample/iOS-NativeAOT/Makefile +++ b/src/mono/sample/iOS-NativeAOT/Makefile @@ -56,7 +56,7 @@ endif hello-app: clean $(DOTNET) \ - publish -c $(BUILD_CONFIG) \ + build -c $(BUILD_CONFIG) \ -p:TargetOS=$(TARGET_OS) \ -p:TargetArchitecture=$(TARGET_ARCH) \ -p:DeployAndRun=$(DEPLOY_AND_RUN) \ diff --git a/src/mono/sample/iOS/Makefile b/src/mono/sample/iOS/Makefile index 93d015549db20..322eeb37e414d 100644 --- a/src/mono/sample/iOS/Makefile +++ b/src/mono/sample/iOS/Makefile @@ -27,7 +27,7 @@ runtimepack: ../../../../build.sh mono+libs -os $(TARGET) -arch $(MONO_ARCH) -c $(MONO_CONFIG) build-appbundle: clean appbuilder - $(DOTNET) publish \ + $(DOTNET) build \ -c $(MONO_CONFIG) \ /p:TargetOS=$(TARGET) \ /p:TargetArchitecture=$(MONO_ARCH) \ @@ -37,7 +37,7 @@ build-appbundle: clean appbuilder /bl run: clean appbuilder - $(DOTNET) publish \ + $(DOTNET) build \ -c $(MONO_CONFIG) \ /p:TargetOS=ios \ /p:TargetArchitecture=$(MONO_ARCH) \ @@ -48,7 +48,7 @@ run: clean appbuilder /bl run-sim: clean appbuilder - $(DOTNET) publish \ + $(DOTNET) build \ -c $(MONO_CONFIG) \ /p:TargetOS=iossimulator \ /p:TargetArchitecture=$(MONO_ARCH) \ @@ -59,7 +59,7 @@ run-sim: clean appbuilder /bl run-sim-interp: clean appbuilder - $(DOTNET) publish \ + $(DOTNET) build \ -c $(MONO_CONFIG) \ /p:TargetOS=iossimulator \ /p:TargetArchitecture=$(MONO_ARCH) \ @@ -71,7 +71,7 @@ run-sim-interp: clean appbuilder /bl run-catalyst: clean appbuilder - $(DOTNET) publish \ + $(DOTNET) build \ -c $(MONO_CONFIG) \ /p:TargetOS=maccatalyst \ /p:TargetArchitecture=$(MONO_ARCH) \ @@ -81,7 +81,7 @@ run-catalyst: clean appbuilder /bl run-catalyst-interp: clean appbuilder - $(DOTNET) publish \ + $(DOTNET) build \ -c $(MONO_CONFIG) \ /p:TargetOS=maccatalyst \ /p:TargetArchitecture=$(MONO_ARCH) \ diff --git a/src/mono/sample/iOS/Program.cs b/src/mono/sample/iOS/Program.cs index de48155e09f79..8eba35ec210aa 100644 --- a/src/mono/sample/iOS/Program.cs +++ b/src/mono/sample/iOS/Program.cs @@ -45,7 +45,7 @@ public static async Task Main(string[] args) Console.WriteLine("Done!"); #if CI_TEST - await Task.Delay(5000); + await Task.Delay(10000); #if CI_TEST_IOS return 0; #else From 9b5641c6d553c32a996551eb9f767d446ce160ff Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 30 Jun 2023 15:43:38 +0200 Subject: [PATCH 34/87] Revert disabled tests --- .../runtime-extra-platforms-ioslike.yml | 24 + eng/pipelines/global-build.yml | 262 +- eng/pipelines/runtime-linker-tests.yml | 132 +- eng/pipelines/runtime.yml | 2686 ++++++++--------- 4 files changed, 1552 insertions(+), 1552 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index f856d6211df25..d43a536a2e3e2 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -44,6 +44,30 @@ jobs: testRunNamePrefixSuffix: Mono_$(_BuildConfig) extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true +# +# iOS/tvOS devices +# Build the whole product using Native AOT 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: coreclr + platforms: + - ios_arm64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_NativeAOT + buildArgs: -s clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) -rc $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true /p:ContinuousIntegrationBuild=true + timeoutInMinutes: 180 + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true + # # Build the whole product using Mono for iOS/tvOS and run runtime tests with iOS/tvOS devices # diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml index 831b7e0871b7c..6f80e6ad10452 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) diff --git a/eng/pipelines/runtime-linker-tests.yml b/eng/pipelines/runtime-linker-tests.yml index ad7a6df8a7f58..314249cd181f4 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.yml b/eng/pipelines/runtime.yml index 21c03a39054f6..bf5d7ef4f5abd 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -61,472 +61,472 @@ 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;tracing/eventpipe/diagnosticport;tracing/eventpipe/reverse;" 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 }} -# extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) -# scenarios: -# - normal -# - WasmTestOnBrowser - -# - template: /eng/pipelines/common/templates/wasm-library-tests.yml -# parameters: -# platforms: -# - browser_wasm_win -# alwaysRun: ${{ variables.isRollingBuild }} -# extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) -# 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 }} -# extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - -# # 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 }} -# extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - -# - 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 }} -# extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) - -# # Wasm Debugger tests -# - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml -# parameters: -# platforms: -# - 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 -# parameters: -# 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 -# parameters: -# platforms: -# - browser_wasm -# nameSuffix: _Threading_Smoke -# extraBuildArgs: /p:MonoWasmBuildVariant=multithread /p:_WasmPThreadPoolSize=8 /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) -# shouldRunSmokeOnly: true -# alwaysRun: ${{ variables.isRollingBuild }} -# scenarios: -# - WasmTestOnBrowser - -# # 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 /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) -# 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 -# extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) -# alwaysRun: ${{ variables.isRollingBuild }} + # + # 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;tracing/eventpipe/diagnosticport;tracing/eventpipe/reverse;" 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 }} + extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + scenarios: + - normal + - WasmTestOnBrowser + + - template: /eng/pipelines/common/templates/wasm-library-tests.yml + parameters: + platforms: + - browser_wasm_win + alwaysRun: ${{ variables.isRollingBuild }} + extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + 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 }} + extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + + # 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 }} + extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + + - 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 }} + extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + + # Wasm Debugger tests + - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml + parameters: + platforms: + - 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 + parameters: + 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 + parameters: + platforms: + - browser_wasm + nameSuffix: _Threading_Smoke + extraBuildArgs: /p:MonoWasmBuildVariant=multithread /p:_WasmPThreadPoolSize=8 /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + shouldRunSmokeOnly: true + alwaysRun: ${{ variables.isRollingBuild }} + scenarios: + - WasmTestOnBrowser + + # 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 /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + 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 + extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) + alwaysRun: ${{ variables.isRollingBuild }} # # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size @@ -570,907 +570,883 @@ extends: 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 - # # - # - 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) - # - # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size - # Build the whole product using Native AOT and run libraries tests + # MacCatalyst interp - requires AOT Compilation and Interp flags + # 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: coreclr + runtimeFlavor: mono platforms: - - ios_arm64 + - 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_NativeAOT - buildArgs: -s clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) -rc $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true /p:ContinuousIntegrationBuild=true + 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: NativeAOT_$(_BuildConfig) - extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true \ No newline at end of file + 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) From 8a46827ce33c34c03ca2014b71b8fee7bfd3ead6 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 12 Jul 2023 19:10:17 +0200 Subject: [PATCH 35/87] Use cross build for Native AOT tests --- .../extra-platforms/runtime-extra-platforms-ioslike.yml | 2 +- eng/pipelines/runtime.yml | 2 +- eng/testing/tests.ioslike.targets | 1 + src/libraries/tests.proj | 3 +++ 4 files changed, 6 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 d43a536a2e3e2..64ff55acb3abe 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -59,7 +59,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT - buildArgs: -s clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) -rc $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true /p:ContinuousIntegrationBuild=true + buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) -rc $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true /p:ContinuousIntegrationBuild=true timeoutInMinutes: 180 # extra steps, run tests extraStepsTemplate: /eng/pipelines/libraries/helix.yml diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index c130b33e52cc6..65769749869b4 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -540,7 +540,7 @@ extends: runtimeFlavor: mono platforms: - ios_arm64 - # - tvos_arm64 + - tvos_arm64 variables: # map dependencies variables to local variables - name: librariesContainsChange diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 58c08411e88e2..548e363c1ae60 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -99,6 +99,7 @@ + diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 6808c5c8056d4..5d2c211776c6b 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -626,6 +626,9 @@ + From c8515cdd3865a61c3a0f649d0ae56205231c05ec Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 12 Jul 2023 21:16:08 +0200 Subject: [PATCH 36/87] Enable functional tests and fix ilc path --- src/libraries/sendtohelix-mobile.targets | 2 +- src/libraries/tests.proj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libraries/sendtohelix-mobile.targets b/src/libraries/sendtohelix-mobile.targets index dc5c3526adb57..2627947420081 100644 --- a/src/libraries/sendtohelix-mobile.targets +++ b/src/libraries/sendtohelix-mobile.targets @@ -62,7 +62,7 @@ - $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'coreclr', '$(HostOS).$(BuildArchitecture).$(CoreCLRConfiguration)', 'ilc')) + $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', '$(HostArchitecture)', 'ilc')) $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 5d2c211776c6b..85ab0bf9f7968 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -242,7 +242,7 @@ - + From d715082e0648e564c6d6dff4c7896d2a2a967ad8 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 12 Jul 2023 23:36:36 +0200 Subject: [PATCH 37/87] Enable functional tests --- .../iOS/Device/AOT-LLVM/Directory.Build.props | 10 ++++++++++ .../iOS/Device/AOT-LLVM/Directory.Build.targets | 3 +++ .../Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj | 5 ++++- .../iOS.Device.ExportManagedSymbols.Test.csproj | 5 ++++- 4 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.props create mode 100644 src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.targets diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.props b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.props new file mode 100644 index 0000000000000..27d4e278a800c --- /dev/null +++ b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.props @@ -0,0 +1,10 @@ + + + false + false + true + true + + + + \ No newline at end of file diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.targets b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.targets new file mode 100644 index 0000000000000..d8ef266b5da4e --- /dev/null +++ b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.targets @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj index 1ece8333a99f1..d2e97762640be 100644 --- a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj @@ -2,6 +2,7 @@ Exe + bin false true true @@ -10,8 +11,10 @@ iOS.Device.Aot-Llvm.Test.dll false 42 - true true + + true + Link diff --git a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj index be52903a35524..b8401e65243a7 100644 --- a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj @@ -2,6 +2,7 @@ Exe + bin false true true @@ -10,9 +11,11 @@ iOS.Device.ExportManagedSymbols.Test.dll false 42 - true true $(MSBuildProjectDirectory)/main.m + + true + Link From 99cc75b60b7b5469284b0a9411a69f2fb47eff78 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 13 Jul 2023 08:28:56 +0200 Subject: [PATCH 38/87] Run functional test on the CI --- .../Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj index d2e97762640be..d931f3df0af90 100644 --- a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj @@ -7,14 +7,22 @@ true true $(NetCoreAppCurrent) + $(TargetOS)-$(TargetArchitecture) ios iOS.Device.Aot-Llvm.Test.dll false 42 true - true - Link + true + Link + + HelloiOS + true + false + true + + true From d0911d3abc128d793c14eef0a667a05dbb27f0d8 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 13 Jul 2023 10:32:34 +0200 Subject: [PATCH 39/87] Use AssemblyName as the MainLibraryFileName --- .../iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj index d931f3df0af90..c99364bce68c6 100644 --- a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj @@ -9,7 +9,7 @@ $(NetCoreAppCurrent) $(TargetOS)-$(TargetArchitecture) ios - iOS.Device.Aot-Llvm.Test.dll + $(AssemblyName).dll false 42 true From 7a9cacec57847c15554731face396438bbe47c02 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 13 Jul 2023 16:13:41 +0200 Subject: [PATCH 40/87] Set UseConsoleUITemplate for the functional tests --- .../Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj index c99364bce68c6..ebebb675a1555 100644 --- a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj @@ -14,15 +14,13 @@ 42 true - true - Link + true + Link HelloiOS - true - false + true + true true - - true From a826dbe0f084cece7c3be4ec85c6d0ccdf843037 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 14 Jul 2023 19:52:25 +0200 Subject: [PATCH 41/87] Use predefined MainLibraryFileName in functional tests --- .../iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj | 5 +++-- .../iOS.Device.ExportManagedSymbols.Test.csproj | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj index ebebb675a1555..736e4a032e43d 100644 --- a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj @@ -9,7 +9,7 @@ $(NetCoreAppCurrent) $(TargetOS)-$(TargetArchitecture) ios - $(AssemblyName).dll + iOS.Device.Aot-Llvm.Test.dll false 42 true @@ -17,9 +17,10 @@ true Link - HelloiOS true true + true + true diff --git a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj index b8401e65243a7..dbcce56860a8d 100644 --- a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj @@ -16,6 +16,10 @@ true Link + + HelloiOS + true + true From 9e06c1f2f34c98b0b56a387c07950382192e0e7d Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 15 Jul 2023 14:39:09 +0200 Subject: [PATCH 42/87] Disable trimming of the sample apps --- .../iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj | 6 +++--- .../iOS.Device.ExportManagedSymbols.Test.csproj | 9 +++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj index 736e4a032e43d..98e58467b15ee 100644 --- a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj @@ -14,12 +14,12 @@ 42 true - true - Link + true + Link true true - true + true true diff --git a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj index dbcce56860a8d..015eb619bada0 100644 --- a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj @@ -7,6 +7,7 @@ true true $(NetCoreAppCurrent) + $(TargetOS)-$(TargetArchitecture) iOS iOS.Device.ExportManagedSymbols.Test.dll false @@ -14,12 +15,12 @@ true $(MSBuildProjectDirectory)/main.m - true - Link + true + Link - HelloiOS true - true + true + true From 29911b96ceb3bb12938ad5e8a9410a6239e8c2b4 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 15 Jul 2023 17:23:13 +0200 Subject: [PATCH 43/87] Parametrize xharness apple command with test and run options --- eng/testing/tests.ioslike.targets | 6 +++++- src/libraries/tests.proj | 10 ---------- .../Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj | 1 + .../iOS.Device.ExportManagedSymbols.Test.csproj | 1 + 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 548e363c1ae60..0d510154aa40e 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -22,10 +22,14 @@ <_ResetSimulatorSwitch Condition="'$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'tvossimulator'">--reset-simulator <_SignalAppEndSwitch Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'tvos'">--signal-app-end + true + + <_AppleBuildCommand Condition="'$(UseTestRunner)' == 'true'">apple test + <_AppleBuildCommand Condition="'$(UseTestRunner)' != 'true'">apple run <_AfterBuildCommands> mv $XHARNESS_OUT/AOTBuild.binlog "$HELIX_WORKITEM_UPLOAD_ROOT" sign "$app" - xharness apple test --app "$app" --output-directory "$output_directory" --target "$target" --timeout "$timeout" --xcode "$xcode_path" -v --launch-timeout "$launch_timeout" $(_ResetSimulatorSwitch) $(_SignalAppEndSwitch) -- + xharness $(_AppleBuildCommand) --app "$app" --output-directory "$output_directory" --target "$target" --timeout "$timeout" --xcode "$xcode_path" -v --launch-timeout "$launch_timeout" $(_ResetSimulatorSwitch) $(_SignalAppEndSwitch) -- $(_AOTBuildCommand) $(_AfterBuildCommands) diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 476d789bf5ef8..7aaaece092ec6 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -239,9 +239,6 @@ - - - @@ -611,9 +608,6 @@ - - - @@ -652,8 +644,6 @@ - diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj index 98e58467b15ee..c796e6d880edc 100644 --- a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj @@ -13,6 +13,7 @@ false 42 true + false true Link diff --git a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj index 015eb619bada0..f2fb2876214e2 100644 --- a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj @@ -14,6 +14,7 @@ 42 true $(MSBuildProjectDirectory)/main.m + false true Link From 6a420d350214d4a88b25b30e720ed953d040fed2 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 15 Jul 2023 18:45:47 +0200 Subject: [PATCH 44/87] Add --expected-exit-code for apple run command --- eng/testing/tests.ioslike.targets | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 0d510154aa40e..ba6c029e3d77f 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -26,10 +26,11 @@ <_AppleBuildCommand Condition="'$(UseTestRunner)' == 'true'">apple test <_AppleBuildCommand Condition="'$(UseTestRunner)' != 'true'">apple run + <_AppleExpectedExitCode Condition="'$(ExpectedExitCode)' != ''">--expected-exit-code $(ExpectedExitCode) <_AfterBuildCommands> mv $XHARNESS_OUT/AOTBuild.binlog "$HELIX_WORKITEM_UPLOAD_ROOT" sign "$app" - xharness $(_AppleBuildCommand) --app "$app" --output-directory "$output_directory" --target "$target" --timeout "$timeout" --xcode "$xcode_path" -v --launch-timeout "$launch_timeout" $(_ResetSimulatorSwitch) $(_SignalAppEndSwitch) -- + xharness $(_AppleBuildCommand) --app "$app" --output-directory "$output_directory" --target "$target" --timeout "$timeout" --xcode "$xcode_path" -v --launch-timeout "$launch_timeout" $(_ResetSimulatorSwitch) $(_SignalAppEndSwitch) $(_AppleExpectedExitCode) -- $(_AOTBuildCommand) $(_AfterBuildCommands) From d2d83b0fe7b41e3304e09bbb16e411d87d841f12 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sat, 15 Jul 2023 23:41:47 +0200 Subject: [PATCH 45/87] Run Native AOT functional test on the CI --- .../runtime-extra-platforms-ioslike.yml | 2 +- eng/pipelines/runtime.yml | 25 +++++++++++++++++++ src/libraries/tests.proj | 2 -- .../AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj | 24 ++++++++++++------ 4 files changed, 42 insertions(+), 11 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index f58cc1084a70b..06b99023a8a68 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -105,7 +105,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT - buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) -rc $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true /p:ContinuousIntegrationBuild=true + buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true /p:ContinuousIntegrationBuild=true timeoutInMinutes: 180 # extra steps, run tests extraStepsTemplate: /eng/pipelines/libraries/helix.yml diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 4d75c6feeec7a..528c71b55f273 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -570,6 +570,31 @@ extends: eq(variables['monoContainsChange'], true), eq(variables['isRollingBuild'], true)) + # + # iOS/tvOS devices + # Build the whole product using Native AOT 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: coreclr + platforms: + - ios_arm64 + # - tvos_arm64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_NativeAOT + buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=- /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true /p:ContinuousIntegrationBuild=true + timeoutInMinutes: 180 + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true + # # MacCatalyst interp - requires AOT Compilation and Interp flags # Build the whole product using Mono and run libraries tests diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 7aaaece092ec6..bfc1af3647ad9 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -617,8 +617,6 @@ - diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj index c796e6d880edc..5784599d384ea 100644 --- a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj @@ -3,8 +3,6 @@ Exe bin - false - true true $(NetCoreAppCurrent) $(TargetOS)-$(TargetArchitecture) @@ -12,19 +10,29 @@ iOS.Device.Aot-Llvm.Test.dll false 42 - true false - - true - Link - true true true - true + + true + true + Link + + + + <_AotCompileTargetName>_AppleNativeAotCompile; + static + true + true + false + Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink + $([MSBuild]::NormalizePath('$(NativeAotTargetsPath)', 'Microsoft.DotNet.ILCompiler.SingleEntry.targets')) + + From 917ce008d756ebf32275772261ddd2f151ae4208 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 16 Jul 2023 09:40:52 +0200 Subject: [PATCH 46/87] Use cross-compiler dir for ilc --- src/libraries/sendtohelix-mobile.targets | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/libraries/sendtohelix-mobile.targets b/src/libraries/sendtohelix-mobile.targets index 2627947420081..cc818cefc11fd 100644 --- a/src/libraries/sendtohelix-mobile.targets +++ b/src/libraries/sendtohelix-mobile.targets @@ -61,11 +61,6 @@ $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', '..', '.packages', 'microsoft.net.illink.tasks', '$(MicrosoftNETILLinkTasksVersion)')) - - $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', '$(HostArchitecture)', 'ilc')) - $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', 'aotsdk')) - - @@ -75,9 +70,9 @@ - + - + From dc52f2f57218ed2bb97e4a009f435c839321865b Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 16 Jul 2023 10:39:10 +0200 Subject: [PATCH 47/87] Don't use MainLibraryFileName in Native AOT app bundle --- .../iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj index 5784599d384ea..cdf758f6b7391 100644 --- a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj @@ -7,7 +7,6 @@ $(NetCoreAppCurrent) $(TargetOS)-$(TargetArchitecture) ios - iOS.Device.Aot-Llvm.Test.dll false 42 false @@ -21,6 +20,7 @@ true true Link + iOS.Device.Aot-Llvm.Test.dll From 9bb44e649bf55027dbee451c09a4c9035ebe1bee Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 16 Jul 2023 11:28:36 +0200 Subject: [PATCH 48/87] Make console template compatible with Native AOT --- src/tasks/AppleAppBuilder/AppleAppBuilder.cs | 3 --- .../AppleAppBuilder/Templates/main-console.m | 19 ++++++++++++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/tasks/AppleAppBuilder/AppleAppBuilder.cs b/src/tasks/AppleAppBuilder/AppleAppBuilder.cs index 5b84eaeac2064..bf436bf25d394 100644 --- a/src/tasks/AppleAppBuilder/AppleAppBuilder.cs +++ b/src/tasks/AppleAppBuilder/AppleAppBuilder.cs @@ -196,9 +196,6 @@ public void ValidateRuntimeSelection() if (!string.IsNullOrEmpty(MainLibraryFileName)) throw new ArgumentException($"Property \"{nameof(MainLibraryFileName)}\" is not supported with NativeAOT runtime and will be ignored."); - if (UseConsoleUITemplate) - throw new ArgumentException($"Property \"{nameof(UseConsoleUITemplate)}\" is not supported with NativeAOT runtime and will be ignored."); - if (ForceInterpreter) throw new ArgumentException($"Property \"{nameof(ForceInterpreter)}\" is not supported with NativeAOT runtime and will be ignored."); diff --git a/src/tasks/AppleAppBuilder/Templates/main-console.m b/src/tasks/AppleAppBuilder/Templates/main-console.m index cc13485761bcb..7db0bc3ac280a 100644 --- a/src/tasks/AppleAppBuilder/Templates/main-console.m +++ b/src/tasks/AppleAppBuilder/Templates/main-console.m @@ -2,8 +2,13 @@ // The .NET Foundation licenses this file to you under the MIT license. #import +#if !USE_NATIVE_AOT #import "runtime.h" -#include +#else +#import +#import "util.h" +extern int __managed__Main(int argc, char* argv[]); +#endif @interface ViewController : UIViewController @end @@ -58,7 +63,19 @@ - (void)viewDidLoad { [self.view addSubview:summaryLabel]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ +#if !USE_NATIVE_AOT mono_ios_runtime_init (); +#else +#if INVARIANT_GLOBALIZATION + setenv ("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT", "1", TRUE); +#endif + char **managed_argv; + int managed_argc = get_managed_args (&managed_argv); + int ret_val = __managed__Main (managed_argc, managed_argv); + free_managed_args (&managed_argv, managed_argc); + os_log_info (OS_LOG_DEFAULT, EXIT_CODE_TAG ": %d", ret_val); + exit (ret_val); +#endif }); } From cd8a7f18ec922d98ed812ba5188fe2e7980451fc Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 16 Jul 2023 12:34:39 +0200 Subject: [PATCH 49/87] Remove redundant props --- src/mono/msbuild/apple/build/AppleBuild.targets | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/mono/msbuild/apple/build/AppleBuild.targets b/src/mono/msbuild/apple/build/AppleBuild.targets index 17f260e3053e4..730b09cfe16c8 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.targets @@ -254,11 +254,6 @@ - - <_ExcludeFromAppDir Condition="'$(UseNativeAOTRuntime)' == 'true'" Include=".dll" /> - <_ExcludeFromAppDir Condition="'$(UseNativeAOTRuntime)' == 'true'" Include=".a" /> - - Date: Sun, 16 Jul 2023 13:40:48 +0200 Subject: [PATCH 50/87] Add native dependencies to the app bundle --- src/mono/msbuild/apple/build/AppleBuild.targets | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mono/msbuild/apple/build/AppleBuild.targets b/src/mono/msbuild/apple/build/AppleBuild.targets index 730b09cfe16c8..73fc17b35d90b 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.targets @@ -251,9 +251,12 @@ <_LinkerFlagsToDrop Include="@(NativeFramework->'-framework %(Identity)')" /> - + + %(ManagedBinary.IlcOutputFile) + + Date: Sun, 16 Jul 2023 17:26:09 +0200 Subject: [PATCH 51/87] Run Native AOT tests on simulators and maccatalyst --- .../runtime-extra-platforms-ioslike.yml | 3 +- ...ntime-extra-platforms-ioslikesimulator.yml | 29 +++++++++ .../runtime-extra-platforms-maccatalyst.yml | 29 +++++++++ eng/pipelines/runtime.yml | 2 +- eng/testing/tests.ioslike.targets | 7 -- src/libraries/tests.proj | 5 -- .../apple/data/ProxyProjectForAOTOnHelix.proj | 11 ++++ .../iOS-NativeAOT/Directory.Build.props | 10 --- .../iOS-NativeAOT/Directory.Build.targets | 3 - src/mono/sample/iOS-NativeAOT/Makefile | 2 +- src/mono/sample/iOS-NativeAOT/Program.csproj | 64 +++++++++++++++---- src/mono/sample/iOS/Directory.Build.props | 10 --- src/mono/sample/iOS/Directory.Build.targets | 3 - src/mono/sample/iOS/Makefile | 12 ++-- src/mono/sample/iOS/Program.cs | 6 +- src/mono/sample/iOS/Program.csproj | 42 +++++++----- .../AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj | 4 -- ...OS.Device.ExportManagedSymbols.Test.csproj | 11 +--- .../iOS.Simulator.Aot-Llvm.Test.csproj | 23 +++++-- 19 files changed, 179 insertions(+), 97 deletions(-) delete mode 100644 src/mono/sample/iOS-NativeAOT/Directory.Build.props delete mode 100644 src/mono/sample/iOS-NativeAOT/Directory.Build.targets delete mode 100644 src/mono/sample/iOS/Directory.Build.props delete mode 100644 src/mono/sample/iOS/Directory.Build.targets diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 06b99023a8a68..ee34745dff172 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -102,10 +102,11 @@ jobs: runtimeFlavor: coreclr platforms: - ios_arm64 + - tvos_arm64 jobParameters: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT - buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true /p:ContinuousIntegrationBuild=true + buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=- /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true /p:ContinuousIntegrationBuild=true timeoutInMinutes: 180 # extra steps, run tests extraStepsTemplate: /eng/pipelines/libraries/helix.yml diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index d7643974c4e3c..f33586af24394 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -46,6 +46,35 @@ jobs: interpreter: true testRunNamePrefixSuffix: Mono_$(_BuildConfig) +# +# iOS/tvOS simulators +# Build the whole product using Native AOT 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: coreclr + isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + isiOSLikeSimulatorOnlyBuild: ${{ parameters.isiOSLikeSimulatorOnlyBuild }} + platforms: + - iossimulator_x64 + - tvossimulator_x64 + # don't run tests on arm64 PRs until we can get significantly more devices + - ${{ if eq(variables['isRollingBuild'], true) }}: + - iossimulator_arm64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_NativeAOT + buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:UseNativeAOTRuntime=true + timeoutInMinutes: 180 + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) + # # Build the whole product using Mono for iOSSimulator/tvOSSimulator and run runtime tests with iOS/tvOS simulators # diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml index 736bf0516dfdf..1c01922ce23c4 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml @@ -75,3 +75,32 @@ jobs: creator: dotnet-bot interpreter: true testRunNamePrefixSuffix: Mono_$(_BuildConfig) + +# +# MacCatalyst +# Build the whole product using Native AOT 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: coreclr + isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + isMacCatalystOnlyBuild: ${{ parameters.isMacCatalystOnlyBuild }} + platforms: + - maccatalyst_x64 + - maccatalyst_arm64 + # don't run tests on arm64 PRs until we can get significantly more devices + - ${{ if eq(variables['isRollingBuild'], true) }}: + - iossimulator_arm64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_NativeAOT + buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=adhoc /p:UseNativeAOTRuntime=true + timeoutInMinutes: 180 + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) \ No newline at end of file diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 528c71b55f273..0e3ff1e29716e 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -582,7 +582,7 @@ extends: runtimeFlavor: coreclr platforms: - ios_arm64 - # - tvos_arm64 + - tvos_arm64 jobParameters: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index ba6c029e3d77f..64fef13b5779b 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -114,13 +114,6 @@ <_ApplePropertyNames Include="MonoEnableLLVM" /> <_ApplePropertyNames Include="MainLibraryFileName" /> <_ApplePropertyNames Include="UseConsoleUITemplate" /> - <_ApplePropertyNames Include="UseNativeAOTRuntime" /> - <_ApplePropertyNames Include="NativeLib" /> - <_ApplePropertyNames Include="CustomNativeMain" /> - <_ApplePropertyNames Include="NativeCompilationDuringPublish" /> - <_ApplePropertyNames Include="_IsApplePlatform" /> - <_ApplePropertyNames Include="TargetsAppleMobile" /> - <_ApplePropertyNames Include="_targetOS" /> <_ApplePropertiesToPass Include="$(%(_ApplePropertyNames.Identity))" diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index bfc1af3647ad9..cb45ed24786ec 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -241,11 +241,6 @@ - - - - - diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index 2a93dfe4cfdcb..767c051cb175b 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -30,6 +30,17 @@ true + + false + true + static + true + false + <_IsApplePlatform>true + true + <_targetOS>$(TargetOS) + + diff --git a/src/mono/sample/iOS-NativeAOT/Directory.Build.props b/src/mono/sample/iOS-NativeAOT/Directory.Build.props deleted file mode 100644 index 1a0bd3db0a4fc..0000000000000 --- a/src/mono/sample/iOS-NativeAOT/Directory.Build.props +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - true - true - - - - \ No newline at end of file diff --git a/src/mono/sample/iOS-NativeAOT/Directory.Build.targets b/src/mono/sample/iOS-NativeAOT/Directory.Build.targets deleted file mode 100644 index 41035a0c0c140..0000000000000 --- a/src/mono/sample/iOS-NativeAOT/Directory.Build.targets +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/mono/sample/iOS-NativeAOT/Makefile b/src/mono/sample/iOS-NativeAOT/Makefile index 59c110ef547dd..29f98c4504169 100644 --- a/src/mono/sample/iOS-NativeAOT/Makefile +++ b/src/mono/sample/iOS-NativeAOT/Makefile @@ -52,7 +52,7 @@ endif hello-app: clean $(DOTNET) \ - build -c $(BUILD_CONFIG) \ + publish -c $(BUILD_CONFIG) \ -p:TargetOS=$(TARGET_OS) \ -p:TargetArchitecture=$(TARGET_ARCH) \ -p:DeployAndRun=$(DEPLOY_AND_RUN) \ diff --git a/src/mono/sample/iOS-NativeAOT/Program.csproj b/src/mono/sample/iOS-NativeAOT/Program.csproj index 3703ef40b8774..c38c3ca5d13c8 100644 --- a/src/mono/sample/iOS-NativeAOT/Program.csproj +++ b/src/mono/sample/iOS-NativeAOT/Program.csproj @@ -8,28 +8,19 @@ true $(TargetOS)-$(TargetArchitecture) HelloiOS - $(DefineConstants);CI_TEST - $(DefineConstants);CI_TEST_IOS true - $(MSBuildThisFileDirectory)/$(OutputPath)/publish static true - <_AotCompileTargetName>_AppleNativeAotCompile; - true - false - True - false false Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink - $([MSBuild]::NormalizePath('$(NativeAotTargetsPath)', 'Microsoft.DotNet.ILCompiler.SingleEntry.targets')) true $(MSBuildWarningsAsErrors);NU1603 false - + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'packages', '$(CoreCLRConfiguration)', 'Shipping')) @@ -37,6 +28,7 @@ + @@ -61,9 +53,59 @@ + + + + $(MSBuildThisFileDirectory)$(OutputPath)\Bundle + True + false + adhoc + false + + + + <_LinkerFlagsToDrop Include="@(NativeFramework->'-framework %(Identity)')" /> + + + <_NativeDependencies Include="%(ManagedBinary.IlcOutputFile)" /> + <_ExcludeFromAppDir Include=".dll" /> + <_ExcludeFromAppDir Include=".json" /> + + + + + + + + + + + + + + + Condition="'$(DeployAndRun)' == 'true'"> diff --git a/src/mono/sample/iOS/Directory.Build.props b/src/mono/sample/iOS/Directory.Build.props deleted file mode 100644 index 1a0bd3db0a4fc..0000000000000 --- a/src/mono/sample/iOS/Directory.Build.props +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - true - true - - - - \ No newline at end of file diff --git a/src/mono/sample/iOS/Directory.Build.targets b/src/mono/sample/iOS/Directory.Build.targets deleted file mode 100644 index 41035a0c0c140..0000000000000 --- a/src/mono/sample/iOS/Directory.Build.targets +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/mono/sample/iOS/Makefile b/src/mono/sample/iOS/Makefile index 10794d17d9da1..a11c280d58ccc 100644 --- a/src/mono/sample/iOS/Makefile +++ b/src/mono/sample/iOS/Makefile @@ -27,7 +27,7 @@ runtimepack: ../../../../build.sh mono+libs -os $(TARGET) -arch $(MONO_ARCH) -c $(MONO_CONFIG) build-appbundle: clean appbuilder - $(DOTNET) build \ + $(DOTNET) publish \ -c $(MONO_CONFIG) \ /p:TargetOS=$(TARGET) \ /p:TargetArchitecture=$(MONO_ARCH) \ @@ -37,7 +37,7 @@ build-appbundle: clean appbuilder /bl run: clean appbuilder - $(DOTNET) build \ + $(DOTNET) publish \ -c $(MONO_CONFIG) \ /p:TargetOS=ios \ /p:TargetArchitecture=$(MONO_ARCH) \ @@ -48,7 +48,7 @@ run: clean appbuilder /bl run-sim: clean appbuilder - $(DOTNET) build \ + $(DOTNET) publish \ -c $(MONO_CONFIG) \ /p:TargetOS=iossimulator \ /p:TargetArchitecture=$(MONO_ARCH) \ @@ -60,7 +60,7 @@ run-sim: clean appbuilder /bl run-sim-interp: clean appbuilder - $(DOTNET) build \ + $(DOTNET) publish \ -c $(MONO_CONFIG) \ /p:TargetOS=iossimulator \ /p:TargetArchitecture=$(MONO_ARCH) \ @@ -72,7 +72,7 @@ run-sim-interp: clean appbuilder /bl run-catalyst: clean appbuilder - $(DOTNET) build \ + $(DOTNET) publish \ -c $(MONO_CONFIG) \ /p:TargetOS=maccatalyst \ /p:TargetArchitecture=$(MONO_ARCH) \ @@ -83,7 +83,7 @@ run-catalyst: clean appbuilder /bl run-catalyst-interp: clean appbuilder - $(DOTNET) build \ + $(DOTNET) publish \ -c $(MONO_CONFIG) \ /p:TargetOS=maccatalyst \ /p:TargetArchitecture=$(MONO_ARCH) \ diff --git a/src/mono/sample/iOS/Program.cs b/src/mono/sample/iOS/Program.cs index 8eba35ec210aa..1c9839a8ae0a2 100644 --- a/src/mono/sample/iOS/Program.cs +++ b/src/mono/sample/iOS/Program.cs @@ -45,12 +45,8 @@ public static async Task Main(string[] args) Console.WriteLine("Done!"); #if CI_TEST - await Task.Delay(10000); -#if CI_TEST_IOS - return 0; -#else + await Task.Delay(5000); return 42; -#endif #else await Task.Delay(-1); #endif diff --git a/src/mono/sample/iOS/Program.csproj b/src/mono/sample/iOS/Program.csproj index c1462d364a584..9a77237bc3a2e 100644 --- a/src/mono/sample/iOS/Program.csproj +++ b/src/mono/sample/iOS/Program.csproj @@ -3,30 +3,40 @@ Exe bin $(NetCoreAppCurrent) + iossimulator $(TargetOS)-$(TargetArchitecture) - $(MSBuildThisFileDirectory)/obj/ - $(MSBuildThisFileDirectory)/$(OutputPath)/publish + $(DefineConstants);CI_TEST HelloiOS $(AssemblyName).dll - true - false + true true - iossimulator + true + Link true - - true - Link - true - $(DefineConstants);CI_TEST - $(DefineConstants);CI_TEST_IOS + true + + true + true + true + false + + CopyFilesToPublishDirectory + CopyFilesToPublishDirectory;Build + Publish - - - + + + + + + + diagnostics_tracing;marshal-ilgen + + - @@ -38,7 +48,7 @@ diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj index cdf758f6b7391..28bc46cf0e02d 100644 --- a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj @@ -25,10 +25,6 @@ <_AotCompileTargetName>_AppleNativeAotCompile; - static - true - true - false Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink $([MSBuild]::NormalizePath('$(NativeAotTargetsPath)', 'Microsoft.DotNet.ILCompiler.SingleEntry.targets')) diff --git a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj index f2fb2876214e2..be52903a35524 100644 --- a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj @@ -2,26 +2,17 @@ Exe - bin false true true $(NetCoreAppCurrent) - $(TargetOS)-$(TargetArchitecture) iOS iOS.Device.ExportManagedSymbols.Test.dll false 42 + true true $(MSBuildProjectDirectory)/main.m - false - - true - Link - - true - true - true diff --git a/src/tests/FunctionalTests/iOS/Simulator/AOT-LLVM/iOS.Simulator.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/iOS/Simulator/AOT-LLVM/iOS.Simulator.Aot-Llvm.Test.csproj index c5f6be1a98cec..8c8b4a562a702 100644 --- a/src/tests/FunctionalTests/iOS/Simulator/AOT-LLVM/iOS.Simulator.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Simulator/AOT-LLVM/iOS.Simulator.Aot-Llvm.Test.csproj @@ -2,16 +2,31 @@ Exe - false - true + bin true $(NetCoreAppCurrent) + $(TargetOS)-$(TargetArchitecture) iossimulator - iOS.Simulator.Aot-Llvm.Test.dll false 42 - true + false + true + true + true + true + + + true + true + Link + iOS.Simulator.Aot-Llvm.Test.dll + + + + <_AotCompileTargetName>_AppleNativeAotCompile; + Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink + $([MSBuild]::NormalizePath('$(NativeAotTargetsPath)', 'Microsoft.DotNet.ILCompiler.SingleEntry.targets')) From b7b285e6000aa5feb2c0814f18160e4e13e6b3c6 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 16 Jul 2023 17:30:46 +0200 Subject: [PATCH 52/87] Remove maccatalyst tests --- .../runtime-extra-platforms-maccatalyst.yml | 29 ------------------- 1 file changed, 29 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml index 1c01922ce23c4..736bf0516dfdf 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml @@ -75,32 +75,3 @@ jobs: creator: dotnet-bot interpreter: true testRunNamePrefixSuffix: Mono_$(_BuildConfig) - -# -# MacCatalyst -# Build the whole product using Native AOT 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: coreclr - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isMacCatalystOnlyBuild: ${{ parameters.isMacCatalystOnlyBuild }} - platforms: - - maccatalyst_x64 - - maccatalyst_arm64 - # don't run tests on arm64 PRs until we can get significantly more devices - - ${{ if eq(variables['isRollingBuild'], true) }}: - - iossimulator_arm64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_NativeAOT - buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=adhoc /p:UseNativeAOTRuntime=true - timeoutInMinutes: 180 - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) \ No newline at end of file From 486c1a33fd7f4158cc61f4e03df1c3d8b6a50b34 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 16 Jul 2023 18:44:25 +0200 Subject: [PATCH 53/87] Enable iOS.Device.Aot-Llvm.Test.csproj test --- src/libraries/tests.proj | 3 +++ .../iOS/Device/AOT-LLVM/Directory.Build.props | 10 ---------- .../iOS/Device/AOT-LLVM/Directory.Build.targets | 3 --- 3 files changed, 3 insertions(+), 13 deletions(-) delete mode 100644 src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.props delete mode 100644 src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.targets diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index cb45ed24786ec..7f70d45c26b7c 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -239,6 +239,9 @@ + + + diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.props b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.props deleted file mode 100644 index 27d4e278a800c..0000000000000 --- a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.props +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - true - true - - - - \ No newline at end of file diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.targets b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.targets deleted file mode 100644 index d8ef266b5da4e..0000000000000 --- a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.targets +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file From 0d7d88bb3678fdcac6bfae6bc48df042617a68f2 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 16 Jul 2023 19:42:50 +0200 Subject: [PATCH 54/87] Add targets and props from the libraries CI --- .../iOS/Device/AOT-LLVM/Directory.Build.props | 10 ++++++++++ .../iOS/Device/AOT-LLVM/Directory.Build.targets | 3 +++ 2 files changed, 13 insertions(+) create mode 100644 src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.props create mode 100644 src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.targets diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.props b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.props new file mode 100644 index 0000000000000..27d4e278a800c --- /dev/null +++ b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.props @@ -0,0 +1,10 @@ + + + false + false + true + true + + + + \ No newline at end of file diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.targets b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.targets new file mode 100644 index 0000000000000..d8ef266b5da4e --- /dev/null +++ b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.targets @@ -0,0 +1,3 @@ + + + \ No newline at end of file From 8470e8f83548d97228a3830f56b467a4641f29dc Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Sun, 16 Jul 2023 20:55:21 +0200 Subject: [PATCH 55/87] Run functional test on tvos --- src/libraries/tests.proj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 7f70d45c26b7c..70f35576c0e3e 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -279,7 +279,7 @@ - + @@ -614,7 +614,7 @@ - + From e50a6476d603774fcd1fa8af6697db4b5464bbb3 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 19 Jul 2023 14:21:43 +0200 Subject: [PATCH 56/87] Run tvOS sample on the CI --- ...ntime-extra-platforms-ioslikesimulator.yml | 29 --------------- eng/testing/tests.ioslike.targets | 10 ++---- src/libraries/tests.proj | 4 +-- .../apple/data/ProxyProjectForAOTOnHelix.proj | 35 ++++++++----------- .../AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj | 2 -- .../Device/AOT-LLVM/Directory.Build.props | 10 ++++++ .../Device/AOT-LLVM/Directory.Build.targets | 3 ++ .../AOT-LLVM/tvOS.Device.Aot-Llvm.Test.csproj | 28 ++++++++++++--- 8 files changed, 56 insertions(+), 65 deletions(-) create mode 100644 src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/Directory.Build.props create mode 100644 src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/Directory.Build.targets diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index f33586af24394..d7643974c4e3c 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -46,35 +46,6 @@ jobs: interpreter: true testRunNamePrefixSuffix: Mono_$(_BuildConfig) -# -# iOS/tvOS simulators -# Build the whole product using Native AOT 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: coreclr - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isiOSLikeSimulatorOnlyBuild: ${{ parameters.isiOSLikeSimulatorOnlyBuild }} - platforms: - - iossimulator_x64 - - tvossimulator_x64 - # don't run tests on arm64 PRs until we can get significantly more devices - - ${{ if eq(variables['isRollingBuild'], true) }}: - - iossimulator_arm64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_NativeAOT - buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:UseNativeAOTRuntime=true - timeoutInMinutes: 180 - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) - # # Build the whole product using Mono for iOSSimulator/tvOSSimulator and run runtime tests with iOS/tvOS simulators # diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 64fef13b5779b..fd77f006a29d8 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -22,10 +22,10 @@ <_ResetSimulatorSwitch Condition="'$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'tvossimulator'">--reset-simulator <_SignalAppEndSwitch Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'tvos'">--signal-app-end - true + true - <_AppleBuildCommand Condition="'$(UseTestRunner)' == 'true'">apple test - <_AppleBuildCommand Condition="'$(UseTestRunner)' != 'true'">apple run + <_AppleBuildCommand Condition="'$(IncludesTestRunner)' == 'true'">apple test + <_AppleBuildCommand Condition="'$(IncludesTestRunner)' != 'true'">apple run <_AppleExpectedExitCode Condition="'$(ExpectedExitCode)' != ''">--expected-exit-code $(ExpectedExitCode) <_AfterBuildCommands> mv $XHARNESS_OUT/AOTBuild.binlog "$HELIX_WORKITEM_UPLOAD_ROOT" @@ -33,10 +33,6 @@ xharness $(_AppleBuildCommand) --app "$app" --output-directory "$output_directory" --target "$target" --timeout "$timeout" --xcode "$xcode_path" -v --launch-timeout "$launch_timeout" $(_ResetSimulatorSwitch) $(_SignalAppEndSwitch) $(_AppleExpectedExitCode) -- $(_AOTBuildCommand) $(_AfterBuildCommands) - - <_targetOS>$(TargetOS) - <_IsApplePlatform>true - true - + @@ -621,7 +621,7 @@ - diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index 767c051cb175b..3306c730ab028 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -17,15 +17,15 @@ <_AotCompileTargetName Condition="'$(UseNativeAOTRuntime)' != 'true'">_AppleAotCompile; <_AotCompileTargetName Condition="'$(UseNativeAOTRuntime)' == 'true'">_AppleNativeAotCompile; - _PrepareForAppleBuildAppOnHelix; - _InitializeCommonProperties; - _BeforeAppleBuild; - _AppleResolveReferences; - $(_AotCompileTargetName) - _BuildNativeLibrary; - _AppleGenerateAppBundle; - _AfterAppleBuild; - _AfterAppleBuildOnHelix; + _PrepareForAppleBuildAppOnHelix; + _InitializeCommonProperties; + _BeforeAppleBuild; + _AppleResolveReferences; + $(_AotCompileTargetName) + _BuildNativeLibrary; + _AppleGenerateAppBundle; + _AfterAppleBuild; + _AfterAppleBuildOnHelix; true @@ -33,19 +33,14 @@ false true - static - true - false - <_IsApplePlatform>true - true - <_targetOS>$(TargetOS) + static + true + false + <_IsApplePlatform>true + true + <_targetOS>$(TargetOS) - - - - - diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj index 28bc46cf0e02d..3941595cea25d 100644 --- a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj @@ -1,5 +1,4 @@ - Exe bin @@ -9,7 +8,6 @@ ios false 42 - false true true true diff --git a/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/Directory.Build.props b/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/Directory.Build.props new file mode 100644 index 0000000000000..27d4e278a800c --- /dev/null +++ b/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/Directory.Build.props @@ -0,0 +1,10 @@ + + + false + false + true + true + + + + \ No newline at end of file diff --git a/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/Directory.Build.targets b/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/Directory.Build.targets new file mode 100644 index 0000000000000..d8ef266b5da4e --- /dev/null +++ b/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/Directory.Build.targets @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot-Llvm.Test.csproj index 2cdbe1ddf132c..6034704613b6e 100644 --- a/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot-Llvm.Test.csproj @@ -1,19 +1,37 @@ - Exe - false - true + bin true $(NetCoreAppCurrent) + $(TargetOS)-$(TargetArchitecture) tvos - tvOS.Device.Aot-Llvm.Test.dll false 42 - true + true + true + true + true + + + true + true + Link + tvOS.Device.Aot-Llvm.Test.dll + + <_AotCompileTargetName>_AppleNativeAotCompile; + Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink + $([MSBuild]::NormalizePath('$(NativeAotTargetsPath)', 'Microsoft.DotNet.ILCompiler.SingleEntry.targets')) + + + + + + + From f3d9b2581e038aec9d682a5fe46e1920b0e838ba Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 19 Jul 2023 15:34:43 +0200 Subject: [PATCH 57/87] Fix IncludesTestRunner property --- eng/testing/tests.ioslike.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index fd77f006a29d8..68208d181588e 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -22,7 +22,7 @@ <_ResetSimulatorSwitch Condition="'$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'tvossimulator'">--reset-simulator <_SignalAppEndSwitch Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'tvos'">--signal-app-end - true + true <_AppleBuildCommand Condition="'$(IncludesTestRunner)' == 'true'">apple test <_AppleBuildCommand Condition="'$(IncludesTestRunner)' != 'true'">apple run From f14e66808ca3cf4b8a56d536406e6f099c9189fa Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 19 Jul 2023 17:19:22 +0200 Subject: [PATCH 58/87] Add Native AOT specific props --- eng/testing/tests.ioslike.targets | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 68208d181588e..8523bb5d6d2ad 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -33,6 +33,10 @@ xharness $(_AppleBuildCommand) --app "$app" --output-directory "$output_directory" --target "$target" --timeout "$timeout" --xcode "$xcode_path" -v --launch-timeout "$launch_timeout" $(_ResetSimulatorSwitch) $(_SignalAppEndSwitch) $(_AppleExpectedExitCode) -- $(_AOTBuildCommand) $(_AfterBuildCommands) + + <_targetOS>$(TargetOS) + <_IsApplePlatform>true + true Date: Wed, 19 Jul 2023 18:29:55 +0200 Subject: [PATCH 59/87] Use DirectPInvoke in Native AOT run --- src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index 3306c730ab028..a7bcfe8166b23 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -41,6 +41,10 @@ <_targetOS>$(TargetOS) + + + + From 751a911ca5512a44bd03634c55f2b5659da4a239 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 19 Jul 2023 20:22:27 +0200 Subject: [PATCH 60/87] Remove unused props --- eng/testing/tests.ioslike.targets | 4 ---- 1 file changed, 4 deletions(-) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 8523bb5d6d2ad..68208d181588e 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -33,10 +33,6 @@ xharness $(_AppleBuildCommand) --app "$app" --output-directory "$output_directory" --target "$target" --timeout "$timeout" --xcode "$xcode_path" -v --launch-timeout "$launch_timeout" $(_ResetSimulatorSwitch) $(_SignalAppEndSwitch) $(_AppleExpectedExitCode) -- $(_AOTBuildCommand) $(_AfterBuildCommands) - - <_targetOS>$(TargetOS) - <_IsApplePlatform>true - true Date: Tue, 25 Jul 2023 22:44:47 +0200 Subject: [PATCH 61/87] Don't run _ScanAssembliesDecideLightweightMarshaler with Native AOT --- src/mono/msbuild/apple/build/AppleBuild.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/msbuild/apple/build/AppleBuild.targets b/src/mono/msbuild/apple/build/AppleBuild.targets index 8603efb31de03..436e094f7b626 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.targets @@ -94,7 +94,7 @@ - + true From d8e7ebd405f41d3a70dc534c0945c174f81f6b0a Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 26 Jul 2023 13:43:20 +0200 Subject: [PATCH 62/87] Don't run _ScanAssembliesDecideLightweightMarshaler with Native AOT --- src/mono/msbuild/apple/build/AppleBuild.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/msbuild/apple/build/AppleBuild.targets b/src/mono/msbuild/apple/build/AppleBuild.targets index 436e094f7b626..a9cedb5384f3c 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.targets @@ -94,7 +94,7 @@ - + true From 25a057c83e6fc6adc08457242c4a6414840a1f9d Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 26 Jul 2023 19:47:12 +0200 Subject: [PATCH 63/87] Remove redundant props --- .../extra-platforms/runtime-extra-platforms-ioslike.yml | 2 +- eng/pipelines/runtime.yml | 2 +- eng/testing/tests.ioslike.targets | 5 ++--- eng/testing/tests.mobile.targets | 6 +++--- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 0706731cca17c..1ba502b9d8160 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -105,7 +105,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT - buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=- /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true /p:ContinuousIntegrationBuild=true + buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=- /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true /p:RunAOTCompilation=false /p:ContinuousIntegrationBuild=true timeoutInMinutes: 180 # extra steps, run tests extraStepsTemplate: /eng/pipelines/libraries/helix.yml diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index dd8a2ff0e6869..390fbd04da3c8 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -591,7 +591,7 @@ extends: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT - buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=- /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true /p:ContinuousIntegrationBuild=true + buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=- /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true /p:RunAOTCompilation=false /p:ContinuousIntegrationBuild=true timeoutInMinutes: 180 # extra steps, run tests extraStepsTemplate: /eng/pipelines/libraries/helix.yml diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 1015fce249ecf..06d40d6897a2d 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -16,7 +16,7 @@ <_AOTBuildCommand Condition="'$(ContinuousIntegrationBuild)' != 'true'">$(_AOTBuildCommand) /p:RuntimeSrcDir=$(RepoRoot) /p:RuntimeConfig=$(Configuration) - <_AOTBuildCommand>$(_AOTBuildCommand) /p:XHARNESS_EXECUTION_DIR="$XHARNESS_EXECUTION_DIR" /p:RunAOTCompilation=$(RunAOTCompilation) /p:UseNativeAOTRuntime=$(UseNativeAOTRuntime) /p:TargetOS=$(TargetOS) /p:TargetArchitecture=$(TargetArchitecture) /p:MonoForceInterpreter=$(MonoForceInterpreter) /p:MonoEnableLLVM=true /p:DevTeamProvisioning=$(DevTeamProvisioning) /p:UsePortableRuntimePack=true /p:Configuration=$(Configuration) + <_AOTBuildCommand>$(_AOTBuildCommand) /p:XHARNESS_EXECUTION_DIR="$XHARNESS_EXECUTION_DIR" /p:RunAOTCompilation=$(RunAOTCompilation) /p:UseNativeAOTRuntime=$(UseNativeAOTRuntime) /p:TargetOS=$(TargetOS) /p:TargetArchitecture=$(TargetArchitecture) /p:MonoForceInterpreter=$(MonoForceInterpreter) /p:DevTeamProvisioning=$(DevTeamProvisioning) /p:UsePortableRuntimePack=true /p:Configuration=$(Configuration) <_AOTBuildCommand>$(_AOTBuildCommand) <_ResetSimulatorSwitch Condition="'$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'tvossimulator'">--reset-simulator @@ -119,7 +119,6 @@ <_ApplePropertyNames Include="MainLibraryFileName" /> <_ApplePropertyNames Include="UseConsoleUITemplate" /> <_ApplePropertyNames Include="UseRuntimeComponents" /> - <_ApplePropertyNames Include="IsRuntimeTests" /> <_ApplePropertiesToPass Include="$(%(_ApplePropertyNames.Identity))" @@ -154,7 +153,7 @@ true - AppleTestRunner.dll + AppleTestRunner.dll $(PublishDir) $(BundleDir) diff --git a/eng/testing/tests.mobile.targets b/eng/testing/tests.mobile.targets index 1cdda2a0a0993..407931d189668 100644 --- a/eng/testing/tests.mobile.targets +++ b/eng/testing/tests.mobile.targets @@ -11,12 +11,12 @@ Publish Build - true - - true + + true + true From cedc3f083d1a47ae47b125b2698f02f6fe5fdde9 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 26 Jul 2023 19:48:42 +0200 Subject: [PATCH 64/87] Update apple build targets with Native AOT props --- src/mono/msbuild/apple/build/AppleBuild.props | 5 ++- .../apple/data/ProxyProjectForAOTOnHelix.proj | 44 ++++++------------- .../msbuild/common/LibraryBuilder.targets | 2 +- 3 files changed, 17 insertions(+), 34 deletions(-) diff --git a/src/mono/msbuild/apple/build/AppleBuild.props b/src/mono/msbuild/apple/build/AppleBuild.props index b6a706f9f0691..4f18bc9c97c42 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.props +++ b/src/mono/msbuild/apple/build/AppleBuild.props @@ -21,7 +21,8 @@ <_IsLibraryMode Condition="'$(NativeLib)' != ''">true - <_AotCompileTargetName Condition="'$(_AotCompileTargetName)' == ''">_AppleAotCompile; + <_AotCompileTargetName Condition="'$(UseNativeAOTRuntime)' == 'true'">_AppleNativeAotCompile + <_AotCompileTargetName Condition="'$(UseNativeAOTRuntime)' != 'true'">_AppleAotCompile ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink Publish @@ -31,7 +32,7 @@ _AppleResolveReferences; _ScanAssembliesDecideLightweightMarshaler; $(_ProcessRuntimeComponentsForLibraryMode); - $(_AotCompileTargetName) + $(_AotCompileTargetName); _BuildNativeLibrary; _AppleGenerateAppBundle; _AfterAppleBuild diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index 5d96ef824e697..37be991b09c92 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -1,36 +1,15 @@ - - - true - $(HELIX_WORKITEM_ROOT)\apple_build\ $(MSBuildThisFileDirectory)..\apple_build\ - true - $(TestRootDir)..\publish\ - $(HELIX_WORKITEM_ROOT)\publish\ + $([System.IO.Path]::GetFullPath('$(TestRootDir)..\publish\')) $(OriginalPublishDir)..\extraFiles\ - $(OriginalPublishDir) - false - - <_AotCompileTargetName Condition="'$(UseNativeAOTRuntime)' != 'true'">_AppleAotCompile; - <_AotCompileTargetName Condition="'$(UseNativeAOTRuntime)' == 'true'">_AppleNativeAotCompile; - - _PrepareForAppleBuildAppOnHelix; - _InitializeCommonProperties; - _BeforeAppleBuild; - _AppleResolveReferences; - $(_AotCompileTargetName) - _BuildNativeLibrary; - _AppleGenerateAppBundle; - _AfterAppleBuild; - _AfterAppleBuildOnHelix; - - true + _PrepareForAppleBuildAppOnHelix;$(AppleBuildDependsOn);_AfterAppleBuildOnHelix + $(OriginalPublishDir) false true static @@ -45,6 +24,8 @@ + + @@ -52,17 +33,13 @@ Importance="High" /> + true + AppleTestRunner.dll + $(OriginalPublishDir) $(TestRootDir)AppBundle\ - - $(OriginalPublishDir)AppleTestRunner.dll - true - - diagnostics_tracing;marshal-ilgen - 127.0.0.1:9000,nosuspend,listen - @@ -74,6 +51,11 @@ + + + diagnostics_tracing;marshal-ilgen + 127.0.0.1:9000,nosuspend,listen + From a2d57da2d934693972eafcfa47ae7d6cb2b86087 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 26 Jul 2023 19:49:22 +0200 Subject: [PATCH 65/87] Remove redundant props --- .../iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj | 1 - .../tvOS/Device/AOT-LLVM/tvOS.Device.Aot-Llvm.Test.csproj | 1 - src/tests/build.proj | 1 + 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj index 3941595cea25d..e540e3c3b50f3 100644 --- a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj @@ -22,7 +22,6 @@ - <_AotCompileTargetName>_AppleNativeAotCompile; Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink $([MSBuild]::NormalizePath('$(NativeAotTargetsPath)', 'Microsoft.DotNet.ILCompiler.SingleEntry.targets')) diff --git a/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot-Llvm.Test.csproj index 6034704613b6e..ca95d84e21d7d 100644 --- a/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot-Llvm.Test.csproj @@ -22,7 +22,6 @@ - <_AotCompileTargetName>_AppleNativeAotCompile; Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink $([MSBuild]::NormalizePath('$(NativeAotTargetsPath)', 'Microsoft.DotNet.ILCompiler.SingleEntry.targets')) diff --git a/src/tests/build.proj b/src/tests/build.proj index e20d07cf95012..a46085f75883d 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -341,6 +341,7 @@ $(AssemblyName) true true + false From c06f211fd8eca018409808f646efa770f89afd32 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 26 Jul 2023 19:52:37 +0200 Subject: [PATCH 66/87] Add IncludesTestRunner property to the Helix payload --- eng/testing/tests.ioslike.targets | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 06d40d6897a2d..077c384745585 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -119,6 +119,7 @@ <_ApplePropertyNames Include="MainLibraryFileName" /> <_ApplePropertyNames Include="UseConsoleUITemplate" /> <_ApplePropertyNames Include="UseRuntimeComponents" /> + <_ApplePropertyNames Include="IncludesTestRunner" /> <_ApplePropertiesToPass Include="$(%(_ApplePropertyNames.Identity))" From 161e45ff659cabeb51760fedbe3781e8ee4165e2 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 27 Jul 2023 11:41:06 +0200 Subject: [PATCH 67/87] Simplify sample app to use AppleBuild targets --- .../msbuild/apple/build/AppleBuild.targets | 14 ++--- src/mono/sample/iOS-NativeAOT/Program.csproj | 56 +++---------------- 2 files changed, 13 insertions(+), 57 deletions(-) diff --git a/src/mono/msbuild/apple/build/AppleBuild.targets b/src/mono/msbuild/apple/build/AppleBuild.targets index a9cedb5384f3c..11812de9b1e38 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.targets @@ -17,10 +17,9 @@ - - - - + + %(ManagedBinary.IlcOutputFile) + + <_LinkerFlagsToDrop Include="@(NativeFramework->'-framework %(Identity)')" /> - - %(ManagedBinary.IlcOutputFile) - - true $(TargetOS)-$(TargetArchitecture) HelloiOS + true true + false static true @@ -16,6 +18,9 @@ Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink + + + true $(MSBuildWarningsAsErrors);NU1603 @@ -26,6 +31,7 @@ + <_ExcludeFromAppDir Include=".dll;.json" /> @@ -53,55 +59,7 @@ - - - - $(MSBuildThisFileDirectory)$(OutputPath)\Bundle - True - false - adhoc - false - - - - <_LinkerFlagsToDrop Include="@(NativeFramework->'-framework %(Identity)')" /> - - - <_NativeDependencies Include="%(ManagedBinary.IlcOutputFile)" /> - <_ExcludeFromAppDir Include=".dll" /> - <_ExcludeFromAppDir Include=".json" /> - - - - - - - - - - - - - + Date: Thu, 27 Jul 2023 14:43:32 +0200 Subject: [PATCH 68/87] Import ilc targets with UseNativeAOTRuntime prop --- src/mono/msbuild/apple/build/AppleBuild.targets | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mono/msbuild/apple/build/AppleBuild.targets b/src/mono/msbuild/apple/build/AppleBuild.targets index 11812de9b1e38..e930686bece99 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.targets @@ -17,9 +17,9 @@ - - Date: Tue, 1 Aug 2023 12:46:24 +0200 Subject: [PATCH 69/87] Remove redundant props --- Directory.Build.props | 2 -- eng/testing/tests.mobile.targets | 2 +- src/libraries/sendtohelix-mobile.targets | 4 ++-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 82ca10a4aef71..b4bfcfea0b942 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -178,8 +178,6 @@ $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(RuntimeConfiguration)')) $(CoreCLRToolPath) - $([MSBuild]::NormalizeDirectory('$(CoreClrProjectRoot)', 'nativeaot', 'BuildIntegration')) - $(WASMTIME_PATH) $([MSBuild]::NormalizeDirectory($(ArtifactsObjDir), 'wasmtime')) true diff --git a/eng/testing/tests.mobile.targets b/eng/testing/tests.mobile.targets index 407931d189668..589a3fb90753a 100644 --- a/eng/testing/tests.mobile.targets +++ b/eng/testing/tests.mobile.targets @@ -135,7 +135,7 @@ + Condition="'$(TestFramework)' == 'xunit'"> <_runnerFilesToPublish Include="$(AndroidTestRunnerDir)*" Condition="'$(TargetOS)' == 'android'" /> <_runnerFilesToPublish Include="$(AppleTestRunnerDir)*" Condition="'$(TargetOS)' == 'maccatalyst' or '$(TargetOS)' == 'ios' or '$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'tvos' or '$(TargetOS)' == 'tvossimulator'" /> diff --git a/src/libraries/sendtohelix-mobile.targets b/src/libraries/sendtohelix-mobile.targets index cc818cefc11fd..10b8a3ce9ff1a 100644 --- a/src/libraries/sendtohelix-mobile.targets +++ b/src/libraries/sendtohelix-mobile.targets @@ -58,7 +58,7 @@ <_XHarnessAppleCustomCommand Condition="'$(NeedsiOSSDK)' == 'true'"> source build-apple-app.sh - $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', '..', '.packages', 'microsoft.net.illink.tasks', '$(MicrosoftNETILLinkTasksVersion)')) + $([MSBuild]::NormalizeDirectory('$(NuGetPackageRoot)', 'microsoft.net.illink.tasks', '$(MicrosoftNETILLinkTasksVersion)')) @@ -71,7 +71,7 @@ - + From a35bbb7fcb5ce50ff6d660ee78451b67eb572138 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 1 Aug 2023 12:46:48 +0200 Subject: [PATCH 70/87] Revert simulator changes --- .../iOS.Simulator.Aot-Llvm.Test.csproj | 25 ++++--------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/src/tests/FunctionalTests/iOS/Simulator/AOT-LLVM/iOS.Simulator.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/iOS/Simulator/AOT-LLVM/iOS.Simulator.Aot-Llvm.Test.csproj index 8c8b4a562a702..168542b71e3ec 100644 --- a/src/tests/FunctionalTests/iOS/Simulator/AOT-LLVM/iOS.Simulator.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Simulator/AOT-LLVM/iOS.Simulator.Aot-Llvm.Test.csproj @@ -2,34 +2,19 @@ Exe - bin + false + true true $(NetCoreAppCurrent) - $(TargetOS)-$(TargetArchitecture) iossimulator + iOS.Simulator.Aot-Llvm.Test.dll false 42 - false - true - true - true - true - - - + true true - true - Link - iOS.Simulator.Aot-Llvm.Test.dll - - - - <_AotCompileTargetName>_AppleNativeAotCompile; - Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink - $([MSBuild]::NormalizePath('$(NativeAotTargetsPath)', 'Microsoft.DotNet.ILCompiler.SingleEntry.targets')) - + \ No newline at end of file From 989cbcac5d48d0ff4a41e383cbce6a4bc2be7fa1 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 1 Aug 2023 13:39:23 +0200 Subject: [PATCH 71/87] Add native libs for globalization --- eng/testing/tests.ioslike.targets | 5 +++++ .../tvOS/Device/AOT-LLVM/tvOS.Device.Aot-Llvm.Test.csproj | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index bbc461b1167f1..b61aad7fa12e6 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -71,6 +71,11 @@ Include="@(AppleAssembliesToBundle)" TargetDir="publish\%(AppleAssembliesToBundle.RecursiveDir)" /> + + diff --git a/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot-Llvm.Test.csproj index ca95d84e21d7d..6b9a8eee7b2f5 100644 --- a/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot-Llvm.Test.csproj @@ -23,7 +23,7 @@ Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink - $([MSBuild]::NormalizePath('$(NativeAotTargetsPath)', 'Microsoft.DotNet.ILCompiler.SingleEntry.targets')) + $([MSBuild]::NormalizePath('$(CoreCLRBuildIntegrationDir)', 'Microsoft.DotNet.ILCompiler.SingleEntry.targets')) From 3b205208e21ffef87fcc1ccdcbdf095fbc396383 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 1 Aug 2023 17:11:56 +0200 Subject: [PATCH 72/87] Remove redundant props and fix MainLibraryFileName for non-device scenarios --- eng/testing/tests.ioslike.targets | 13 +++++++++---- src/libraries/tests.proj | 4 ++-- .../iOS/Device/AOT-LLVM/ILLink.Descriptors.xml | 2 +- ...-Llvm.Test.csproj => iOS.Device.Aot.Test.csproj} | 10 +--------- ...Llvm.Test.csproj => tvOS.Device.Aot.Test.csproj} | 10 +--------- 5 files changed, 14 insertions(+), 25 deletions(-) rename src/tests/FunctionalTests/iOS/Device/AOT-LLVM/{iOS.Device.Aot-Llvm.Test.csproj => iOS.Device.Aot.Test.csproj} (58%) rename src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/{tvOS.Device.Aot-Llvm.Test.csproj => tvOS.Device.Aot.Test.csproj} (58%) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index b61aad7fa12e6..c96a9129c40c8 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -71,10 +71,14 @@ Include="@(AppleAssembliesToBundle)" TargetDir="publish\%(AppleAssembliesToBundle.RecursiveDir)" /> - + + + + + true true AppleTestRunner.dll diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 49e90405a87c7..f870b88577526 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -242,7 +242,7 @@ - + @@ -280,7 +280,7 @@ - + diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/ILLink.Descriptors.xml b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/ILLink.Descriptors.xml index 5ddcdac6d9f45..48d9154400982 100644 --- a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/ILLink.Descriptors.xml +++ b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/ILLink.Descriptors.xml @@ -1,5 +1,5 @@ - + diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot.Test.csproj similarity index 58% rename from src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj rename to src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot.Test.csproj index e540e3c3b50f3..0a8e0d1e4d7ee 100644 --- a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot.Test.csproj @@ -10,20 +10,12 @@ 42 true true - true true true - true - Link - iOS.Device.Aot-Llvm.Test.dll - - - - Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink - $([MSBuild]::NormalizePath('$(NativeAotTargetsPath)', 'Microsoft.DotNet.ILCompiler.SingleEntry.targets')) + iOS.Device.Aot.Test.dll diff --git a/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot.Test.csproj similarity index 58% rename from src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot-Llvm.Test.csproj rename to src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot.Test.csproj index 6b9a8eee7b2f5..153428493c9c7 100644 --- a/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot.Test.csproj @@ -10,20 +10,12 @@ 42 true true - true true true - true - Link - tvOS.Device.Aot-Llvm.Test.dll - - - - Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink - $([MSBuild]::NormalizePath('$(CoreCLRBuildIntegrationDir)', 'Microsoft.DotNet.ILCompiler.SingleEntry.targets')) + tvOS.Device.Aot.Test.dll From d092326c994b668bab609763182ebd8a1309d438 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 1 Aug 2023 18:38:43 +0200 Subject: [PATCH 73/87] Rename functional tests and include additional ios test --- .../{AOT-LLVM => AOT}/ILLink.Descriptors.xml | 0 .../iOS/Device/{AOT-LLVM => AOT}/Program.cs | 0 .../iOS.Device.Aot.Test.csproj | 0 .../Device}/Directory.Build.props | 2 +- .../iOS/Device/Directory.Build.targets | 3 +++ ...OS.Device.ExportManagedSymbols.Test.csproj | 23 +++++++++++-------- .../Device/AOT-LLVM/Directory.Build.targets | 3 --- .../Device/AOT}/Directory.Build.props | 0 .../Device/AOT}/Directory.Build.targets | 0 .../tvOS/Device/{AOT-LLVM => AOT}/Program.cs | 0 .../tvOS.Device.Aot.Test.csproj | 0 11 files changed, 18 insertions(+), 13 deletions(-) rename src/tests/FunctionalTests/iOS/Device/{AOT-LLVM => AOT}/ILLink.Descriptors.xml (100%) rename src/tests/FunctionalTests/iOS/Device/{AOT-LLVM => AOT}/Program.cs (100%) rename src/tests/FunctionalTests/iOS/Device/{AOT-LLVM => AOT}/iOS.Device.Aot.Test.csproj (100%) rename src/tests/FunctionalTests/{tvOS/Device/AOT-LLVM => iOS/Device}/Directory.Build.props (79%) create mode 100644 src/tests/FunctionalTests/iOS/Device/Directory.Build.targets delete mode 100644 src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/Directory.Build.targets rename src/tests/FunctionalTests/{iOS/Device/AOT-LLVM => tvOS/Device/AOT}/Directory.Build.props (100%) rename src/tests/FunctionalTests/{iOS/Device/AOT-LLVM => tvOS/Device/AOT}/Directory.Build.targets (100%) rename src/tests/FunctionalTests/tvOS/Device/{AOT-LLVM => AOT}/Program.cs (100%) rename src/tests/FunctionalTests/tvOS/Device/{AOT-LLVM => AOT}/tvOS.Device.Aot.Test.csproj (100%) diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/ILLink.Descriptors.xml b/src/tests/FunctionalTests/iOS/Device/AOT/ILLink.Descriptors.xml similarity index 100% rename from src/tests/FunctionalTests/iOS/Device/AOT-LLVM/ILLink.Descriptors.xml rename to src/tests/FunctionalTests/iOS/Device/AOT/ILLink.Descriptors.xml diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Program.cs b/src/tests/FunctionalTests/iOS/Device/AOT/Program.cs similarity index 100% rename from src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Program.cs rename to src/tests/FunctionalTests/iOS/Device/AOT/Program.cs diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot.Test.csproj b/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj similarity index 100% rename from src/tests/FunctionalTests/iOS/Device/AOT-LLVM/iOS.Device.Aot.Test.csproj rename to src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj diff --git a/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/Directory.Build.props b/src/tests/FunctionalTests/iOS/Device/Directory.Build.props similarity index 79% rename from src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/Directory.Build.props rename to src/tests/FunctionalTests/iOS/Device/Directory.Build.props index 27d4e278a800c..d9788f8f84ee4 100644 --- a/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/Directory.Build.props +++ b/src/tests/FunctionalTests/iOS/Device/Directory.Build.props @@ -6,5 +6,5 @@ true - + \ No newline at end of file diff --git a/src/tests/FunctionalTests/iOS/Device/Directory.Build.targets b/src/tests/FunctionalTests/iOS/Device/Directory.Build.targets new file mode 100644 index 0000000000000..2240a7ad27f45 --- /dev/null +++ b/src/tests/FunctionalTests/iOS/Device/Directory.Build.targets @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj index be52903a35524..b7033c8f56383 100644 --- a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj @@ -1,23 +1,28 @@ - Exe - false - true - true $(NetCoreAppCurrent) - iOS - iOS.Device.ExportManagedSymbols.Test.dll + $(TargetOS)-$(TargetArchitecture) + ios false 42 - true - true + true + true + true $(MSBuildProjectDirectory)/main.m + + true + iOS.Device.ExportManagedSymbols.Test.dll + + - + + + + diff --git a/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/Directory.Build.targets b/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/Directory.Build.targets deleted file mode 100644 index d8ef266b5da4e..0000000000000 --- a/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/Directory.Build.targets +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.props b/src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.props similarity index 100% rename from src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.props rename to src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.props diff --git a/src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.targets b/src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.targets similarity index 100% rename from src/tests/FunctionalTests/iOS/Device/AOT-LLVM/Directory.Build.targets rename to src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.targets diff --git a/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/Program.cs b/src/tests/FunctionalTests/tvOS/Device/AOT/Program.cs similarity index 100% rename from src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/Program.cs rename to src/tests/FunctionalTests/tvOS/Device/AOT/Program.cs diff --git a/src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot.Test.csproj b/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj similarity index 100% rename from src/tests/FunctionalTests/tvOS/Device/AOT-LLVM/tvOS.Device.Aot.Test.csproj rename to src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj From d4a3a565fd92465eb9009183e4b3b8b82df8c832 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 1 Aug 2023 19:37:00 +0200 Subject: [PATCH 74/87] Include more functional tests --- src/libraries/tests.proj | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index f870b88577526..344d651474e9e 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -240,9 +240,6 @@ - - - @@ -279,9 +276,6 @@ - - - From 3b62fc8251d95ff5a4fb536b16dbcf4d5af886d5 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 2 Aug 2023 13:36:16 +0200 Subject: [PATCH 75/87] Remove redundant Directory.Build files --- .../FunctionalTests/iOS/Device/Directory.Build.props | 10 ---------- .../FunctionalTests/iOS/Device/Directory.Build.targets | 3 --- .../tvOS/Device/AOT/Directory.Build.props | 10 ---------- .../tvOS/Device/AOT/Directory.Build.targets | 3 --- 4 files changed, 26 deletions(-) delete mode 100644 src/tests/FunctionalTests/iOS/Device/Directory.Build.props delete mode 100644 src/tests/FunctionalTests/iOS/Device/Directory.Build.targets delete mode 100644 src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.props delete mode 100644 src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.targets diff --git a/src/tests/FunctionalTests/iOS/Device/Directory.Build.props b/src/tests/FunctionalTests/iOS/Device/Directory.Build.props deleted file mode 100644 index d9788f8f84ee4..0000000000000 --- a/src/tests/FunctionalTests/iOS/Device/Directory.Build.props +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - true - true - - - - \ No newline at end of file diff --git a/src/tests/FunctionalTests/iOS/Device/Directory.Build.targets b/src/tests/FunctionalTests/iOS/Device/Directory.Build.targets deleted file mode 100644 index 2240a7ad27f45..0000000000000 --- a/src/tests/FunctionalTests/iOS/Device/Directory.Build.targets +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.props b/src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.props deleted file mode 100644 index 27d4e278a800c..0000000000000 --- a/src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.props +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - true - true - - - - \ No newline at end of file diff --git a/src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.targets b/src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.targets deleted file mode 100644 index d8ef266b5da4e..0000000000000 --- a/src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.targets +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file From 36368e251e9e3086e56e163910046ce43fdd19cd Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 2 Aug 2023 16:14:18 +0200 Subject: [PATCH 76/87] Add IsTestProject property --- .../FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj | 1 + .../iOS.Device.ExportManagedSymbols.Test.csproj | 1 + .../FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj | 1 + 3 files changed, 3 insertions(+) diff --git a/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj b/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj index 0a8e0d1e4d7ee..76b1be16888f2 100644 --- a/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj @@ -11,6 +11,7 @@ true true true + true diff --git a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj index b7033c8f56383..5d9143c3582a3 100644 --- a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj @@ -10,6 +10,7 @@ true true $(MSBuildProjectDirectory)/main.m + true diff --git a/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj b/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj index 153428493c9c7..a955a3b66eea2 100644 --- a/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj +++ b/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj @@ -11,6 +11,7 @@ true true true + true From 496acec98652dec652ddd81e17feff1c1a0bb5d8 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 2 Aug 2023 20:11:16 +0200 Subject: [PATCH 77/87] Revert the Directory.Build files --- .../iOS/Device/AOT/iOS.Device.Aot.Test.csproj | 1 - .../FunctionalTests/iOS/Device/Directory.Build.props | 10 ++++++++++ .../FunctionalTests/iOS/Device/Directory.Build.targets | 3 +++ .../iOS.Device.ExportManagedSymbols.Test.csproj | 1 - .../tvOS/Device/AOT/Directory.Build.props | 10 ++++++++++ .../tvOS/Device/AOT/Directory.Build.targets | 3 +++ .../tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj | 1 - 7 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 src/tests/FunctionalTests/iOS/Device/Directory.Build.props create mode 100644 src/tests/FunctionalTests/iOS/Device/Directory.Build.targets create mode 100644 src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.props create mode 100644 src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.targets diff --git a/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj b/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj index 76b1be16888f2..0a8e0d1e4d7ee 100644 --- a/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj @@ -11,7 +11,6 @@ true true true - true diff --git a/src/tests/FunctionalTests/iOS/Device/Directory.Build.props b/src/tests/FunctionalTests/iOS/Device/Directory.Build.props new file mode 100644 index 0000000000000..d9788f8f84ee4 --- /dev/null +++ b/src/tests/FunctionalTests/iOS/Device/Directory.Build.props @@ -0,0 +1,10 @@ + + + false + false + true + true + + + + \ No newline at end of file diff --git a/src/tests/FunctionalTests/iOS/Device/Directory.Build.targets b/src/tests/FunctionalTests/iOS/Device/Directory.Build.targets new file mode 100644 index 0000000000000..2240a7ad27f45 --- /dev/null +++ b/src/tests/FunctionalTests/iOS/Device/Directory.Build.targets @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj index 5d9143c3582a3..b7033c8f56383 100644 --- a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj @@ -10,7 +10,6 @@ true true $(MSBuildProjectDirectory)/main.m - true diff --git a/src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.props b/src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.props new file mode 100644 index 0000000000000..27d4e278a800c --- /dev/null +++ b/src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.props @@ -0,0 +1,10 @@ + + + false + false + true + true + + + + \ No newline at end of file diff --git a/src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.targets b/src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.targets new file mode 100644 index 0000000000000..d8ef266b5da4e --- /dev/null +++ b/src/tests/FunctionalTests/tvOS/Device/AOT/Directory.Build.targets @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj b/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj index a955a3b66eea2..153428493c9c7 100644 --- a/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj +++ b/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj @@ -11,7 +11,6 @@ true true true - true From aa66bb12fd79b3e7dc8d22db45efc29198da1ddd Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 3 Aug 2023 11:21:04 +0200 Subject: [PATCH 78/87] Enable aggressive trimming for Mono builds --- .../FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj | 1 + .../iOS.Device.ExportManagedSymbols.Test.csproj | 1 + .../FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj | 1 + 3 files changed, 3 insertions(+) diff --git a/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj b/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj index 0a8e0d1e4d7ee..c3a1b9e007b55 100644 --- a/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj @@ -16,6 +16,7 @@ true iOS.Device.Aot.Test.dll + true diff --git a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj index b7033c8f56383..6b338c7559430 100644 --- a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj @@ -15,6 +15,7 @@ true iOS.Device.ExportManagedSymbols.Test.dll + true diff --git a/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj b/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj index 153428493c9c7..cdf411aa615b2 100644 --- a/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj +++ b/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj @@ -16,6 +16,7 @@ true tvOS.Device.Aot.Test.dll + true From e47d986da703ed1e0ddc674930563b6377a6e613 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 3 Aug 2023 12:38:31 +0200 Subject: [PATCH 79/87] Simplify the sample app and disable aggressive trimming --- .../msbuild/apple/build/AppleBuild.InTree.targets | 2 +- src/mono/sample/iOS-NativeAOT/Program.csproj | 12 ++++-------- .../iOS/Device/AOT/iOS.Device.Aot.Test.csproj | 1 - .../iOS.Device.ExportManagedSymbols.Test.csproj | 1 - .../tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj | 1 - 5 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/mono/msbuild/apple/build/AppleBuild.InTree.targets b/src/mono/msbuild/apple/build/AppleBuild.InTree.targets index d8519a2114822..3d982701bf8b6 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.InTree.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.InTree.targets @@ -13,7 +13,7 @@ - + <_LocalMicrosoftNetCoreAppRuntimePackDir>$(MicrosoftNetCoreAppRuntimePackDir) diff --git a/src/mono/sample/iOS-NativeAOT/Program.csproj b/src/mono/sample/iOS-NativeAOT/Program.csproj index d0453180c7f5f..642f6d524164a 100644 --- a/src/mono/sample/iOS-NativeAOT/Program.csproj +++ b/src/mono/sample/iOS-NativeAOT/Program.csproj @@ -15,11 +15,11 @@ true false - Compile;ComputeIlcCompileInputs;SetupOSSpecificProps;PrepareForILLink + true @@ -31,13 +31,11 @@ - <_ExcludeFromAppDir Include=".dll;.json" /> + <_ExcludeFromAppDir Include=".dll" /> + <_ExcludeFromAppDir Include=".json" /> + <_ExcludeFromAppDir Include="libbootstrapper.o" /> - - - @@ -59,8 +57,6 @@ - - diff --git a/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj b/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj index c3a1b9e007b55..0a8e0d1e4d7ee 100644 --- a/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj @@ -16,7 +16,6 @@ true iOS.Device.Aot.Test.dll - true diff --git a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj index 6b338c7559430..b7033c8f56383 100644 --- a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj @@ -15,7 +15,6 @@ true iOS.Device.ExportManagedSymbols.Test.dll - true diff --git a/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj b/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj index cdf411aa615b2..153428493c9c7 100644 --- a/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj +++ b/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj @@ -16,7 +16,6 @@ true tvOS.Device.Aot.Test.dll - true From cf5698336411188d375aba24c9921cfea3e077c3 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 4 Aug 2023 14:55:05 +0200 Subject: [PATCH 80/87] Remove redundant props --- eng/testing/tests.ioslike.targets | 8 -------- 1 file changed, 8 deletions(-) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index c96a9129c40c8..2b79db6216d76 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -71,14 +71,6 @@ Include="@(AppleAssembliesToBundle)" TargetDir="publish\%(AppleAssembliesToBundle.RecursiveDir)" /> - - - - Date: Fri, 4 Aug 2023 15:35:57 +0200 Subject: [PATCH 81/87] Add globalization static libraries for Native AOT builds --- eng/testing/tests.ioslike.targets | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 2b79db6216d76..9151c7c7db05e 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -77,6 +77,17 @@ Include="@(AppleAssembliesToBundle)" TargetDir="extraFiles\%(AppleAssembliesToBundle.RecursiveDir)" /> + + + + + + + <_BundlePdbFiles Include="$([System.IO.Path]::ChangeExtension('%(AppleAssembliesToBundle.Identity)', '.pdb'))" /> From 76377628cc99aa6057097d5b3aa4afec2952d2e7 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 8 Aug 2023 13:56:05 +0200 Subject: [PATCH 82/87] Add MonoForceInterpreter property to the functional tests --- .../FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj | 1 + .../iOS.Device.ExportManagedSymbols.Test.csproj | 1 + .../FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj | 1 + 3 files changed, 3 insertions(+) diff --git a/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj b/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj index 0a8e0d1e4d7ee..7d5a64f63c009 100644 --- a/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/AOT/iOS.Device.Aot.Test.csproj @@ -16,6 +16,7 @@ true iOS.Device.Aot.Test.dll + false diff --git a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj index b7033c8f56383..51ebc622ecc02 100644 --- a/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Device/ExportManagedSymbols/iOS.Device.ExportManagedSymbols.Test.csproj @@ -15,6 +15,7 @@ true iOS.Device.ExportManagedSymbols.Test.dll + false diff --git a/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj b/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj index 153428493c9c7..0e2f71fe06b3d 100644 --- a/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj +++ b/src/tests/FunctionalTests/tvOS/Device/AOT/tvOS.Device.Aot.Test.csproj @@ -16,6 +16,7 @@ true tvOS.Device.Aot.Test.dll + false From 4af46f88069f58d07a3a0ff1d2eec8a3894d8c23 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 9 Aug 2023 10:11:22 +0200 Subject: [PATCH 83/87] Don't use runtime components for Native AOT builds --- src/mono/msbuild/apple/build/AppleBuild.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/msbuild/apple/build/AppleBuild.targets b/src/mono/msbuild/apple/build/AppleBuild.targets index f7582a45a90ef..f7c54f9a28a95 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.targets @@ -59,7 +59,7 @@ - marshal-ilgen + marshal-ilgen From 8a59bcad4d7f29645ecdd4d96213f9cfe5798cc8 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 9 Aug 2023 13:29:13 +0200 Subject: [PATCH 84/87] Resolve PR comments --- src/mono/sample/iOS-NativeAOT/Program.csproj | 5 ++++- .../Simulator/AOT-LLVM/iOS.Simulator.Aot-Llvm.Test.csproj | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/mono/sample/iOS-NativeAOT/Program.csproj b/src/mono/sample/iOS-NativeAOT/Program.csproj index 642f6d524164a..45b0a262bdea7 100644 --- a/src/mono/sample/iOS-NativeAOT/Program.csproj +++ b/src/mono/sample/iOS-NativeAOT/Program.csproj @@ -33,7 +33,10 @@ <_ExcludeFromAppDir Include=".dll" /> <_ExcludeFromAppDir Include=".json" /> - <_ExcludeFromAppDir Include="libbootstrapper.o" /> + + <_ExcludeFromAppDir Condition="'$(PublishAotUsingRuntimePack)' == 'true'" + Include="libbootstrapper.o" /> diff --git a/src/tests/FunctionalTests/iOS/Simulator/AOT-LLVM/iOS.Simulator.Aot-Llvm.Test.csproj b/src/tests/FunctionalTests/iOS/Simulator/AOT-LLVM/iOS.Simulator.Aot-Llvm.Test.csproj index 168542b71e3ec..c5f6be1a98cec 100644 --- a/src/tests/FunctionalTests/iOS/Simulator/AOT-LLVM/iOS.Simulator.Aot-Llvm.Test.csproj +++ b/src/tests/FunctionalTests/iOS/Simulator/AOT-LLVM/iOS.Simulator.Aot-Llvm.Test.csproj @@ -17,4 +17,4 @@ - \ No newline at end of file + From 8663185f4dfee5f6511a538822f3967604c2744f Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 11 Aug 2023 10:27:23 +0200 Subject: [PATCH 85/87] Use item group for native dependencies --- src/mono/msbuild/apple/build/AppleBuild.targets | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/mono/msbuild/apple/build/AppleBuild.targets b/src/mono/msbuild/apple/build/AppleBuild.targets index 8c0dcfb6e6de2..936bb275516e1 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.targets @@ -294,11 +294,8 @@ - - %(ManagedBinary.IlcOutputFile) - - + <_LinkerFlagsToDrop Include="@(NativeFramework->'-framework %(Identity)')" /> From 2238ba29dced47f38c910a265bc3a429a92345c9 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 11 Aug 2023 16:59:24 +0200 Subject: [PATCH 86/87] Add conditions to the CI jobs --- .../runtime-extra-platforms-ioslike.yml | 8 ++++++++ eng/pipelines/runtime.yml | 17 +++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 324ded3212e80..84477d2c25a8a 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -99,9 +99,17 @@ jobs: helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml buildConfig: Release runtimeFlavor: coreclr + 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: coreclrContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'] ] jobParameters: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index d1a6772c77206..0f1f9610c6034 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -611,17 +611,34 @@ extends: platforms: - ios_arm64 - tvos_arm64 + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: coreclrContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'] ] jobParameters: testGroup: innerloop nameSuffix: AllSubsets_NativeAOT buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:RunSmokeTestsOnly=true /p:DevTeamProvisioning=- /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=true /p:RunAOTCompilation=false /p:ContinuousIntegrationBuild=true timeoutInMinutes: 180 + condition: >- + or( + eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.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: NativeAOT_$(_BuildConfig) extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true + condition: >- + or( + eq(variables['librariesContainsChange'], true), + eq(variables['coreclrContainsChange'], true), + eq(variables['isRollingBuild'], true)) # # MacCatalyst interp - requires AOT Compilation and Interp flags From cc5313a3475f8739ac8f6954b5d7fbc0123ee24c Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 11 Aug 2023 19:16:59 +0200 Subject: [PATCH 87/87] Update formatting --- src/libraries/sendtohelix-mobile.targets | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/libraries/sendtohelix-mobile.targets b/src/libraries/sendtohelix-mobile.targets index 10b8a3ce9ff1a..53e5f30194a90 100644 --- a/src/libraries/sendtohelix-mobile.targets +++ b/src/libraries/sendtohelix-mobile.targets @@ -64,15 +64,20 @@ - + - + - - - + + +