diff --git a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
index 55cbd0e577365..fcb99e9a6f73a 100644
--- a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
+++ b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
@@ -19,8 +19,7 @@ parameters:
variables: {}
pool: ''
dependsOn: []
- compileOnHelix: false
- interpreter: false
+ extraHelixArguments: ''
buildAllTestsAsStandalone: false
#arcade-specific parameters
condition: always()
@@ -85,56 +84,41 @@ steps:
env:
__MonoToolPrefix: aarch64-linux-gnu-
- # Checks the value of the compileOnHelix parameter
- # and if set invokes libraries pipeline for AOT on Helix
- - ${{ if eq(parameters.compileOnHelix, 'true') }}:
- - template: /eng/pipelines/libraries/helix.yml
- parameters:
- osGroup: ${{ parameters.osGroup }}
- runtimeFlavor: ${{ parameters.runtimeFlavor }}
- archType: ${{ parameters.archType }}
- targetRid: ${{ parameters.targetRid }}
- buildConfig: ${{ parameters.buildConfig }}
- interpreter: ${{ parameters.interpreter }}
- testRunNamePrefixSuffix: ${{ parameters.testRunNamePrefixSuffix }}
- extraHelixArguments: ${{ parameters.extraHelixArguments }}
- helixQueues: ${{ parameters.helixQueues }}
- creator: ${{ parameters.creator }}
- - ${{ else }}:
- - template: /eng/pipelines/common/templates/runtimes/send-to-helix-step.yml
- parameters:
- displayName: Send tests to Helix
- buildConfig: $(buildConfigUpper)
- archType: ${{ parameters.archType }}
- osGroup: ${{ parameters.osGroup }}
- osSubgroup: ${{ parameters.osSubgroup}}
- coreClrRepoRoot: $(Build.SourcesDirectory)/src/coreclr
- shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
- runtimeFlavor: ${{ parameters.runtimeFlavor }}
- runtimeVariant: ${{ parameters.runtimeVariant }}
+ - template: /eng/pipelines/common/templates/runtimes/send-to-helix-step.yml
+ parameters:
+ displayName: Send tests to Helix
+ buildConfig: $(buildConfigUpper)
+ archType: ${{ parameters.archType }}
+ osGroup: ${{ parameters.osGroup }}
+ osSubgroup: ${{ parameters.osSubgroup}}
+ coreClrRepoRoot: $(Build.SourcesDirectory)/src/coreclr
+ shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
+ runtimeFlavor: ${{ parameters.runtimeFlavor }}
+ runtimeVariant: ${{ parameters.runtimeVariant }}
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
- # Access token variable for internal project from the
- # DotNet-HelixApi-Access variable group
- helixAccessToken: $(HelixApiAccessToken)
- ${{ else }}:
- creator: $(Build.DefinitionName)
+ ${{ if eq(variables['System.TeamProject'], 'internal') }}:
+ # Access token variable for internal project from the
+ # DotNet-HelixApi-Access variable group
+ helixAccessToken: $(HelixApiAccessToken)
+ ${{ else }}:
+ creator: $(Build.DefinitionName)
- helixBuild: $(Build.BuildNumber)
- helixSource: $(_HelixSource)
- ${{ if ne(parameters.readyToRun, true) }}:
- helixType: 'test/functional/cli/'
+ helixBuild: $(Build.BuildNumber)
+ helixSource: $(_HelixSource)
+ ${{ if ne(parameters.readyToRun, true) }}:
+ helixType: 'test/functional/cli/'
- helixQueues: ${{ parameters.helixQueues }}
- # This tests whether an array is empty
- ${{ if eq(join('', parameters.helixQueues), '') }}:
- condition: false
- publishTestResults: true
- timeoutPerTestInMinutes: $(timeoutPerTestInMinutes)
- timeoutPerTestCollectionInMinutes: $(timeoutPerTestCollectionInMinutes)
- runCrossGen2: ${{ eq(parameters.readyToRun, true) }}
- compositeBuildMode: ${{ parameters.compositeBuildMode }}
- runInUnloadableContext: ${{ parameters.runInUnloadableContext }}
- nativeAotTest: ${{ parameters.nativeAotTest }}
- helixProjectArguments: '$(Build.SourcesDirectory)/src/tests/Common/helixpublishwitharcade.proj'
- scenarios: ${{ parameters.scenarios }}
+ helixQueues: ${{ parameters.helixQueues }}
+ # This tests whether an array is empty
+ ${{ if eq(join('', parameters.helixQueues), '') }}:
+ condition: false
+ publishTestResults: true
+ timeoutPerTestInMinutes: $(timeoutPerTestInMinutes)
+ timeoutPerTestCollectionInMinutes: $(timeoutPerTestCollectionInMinutes)
+ runCrossGen2: ${{ eq(parameters.readyToRun, true) }}
+ compositeBuildMode: ${{ parameters.compositeBuildMode }}
+ runInUnloadableContext: ${{ parameters.runInUnloadableContext }}
+ nativeAotTest: ${{ parameters.nativeAotTest }}
+ helixProjectArguments: '$(Build.SourcesDirectory)/src/tests/Common/helixpublishwitharcade.proj'
+ extraHelixArguments: ${{ parameters.extraHelixArguments }}
+ scenarios: ${{ parameters.scenarios }}
diff --git a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml
index a45c3817d13b5..989ccdc9319a9 100644
--- a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml
+++ b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml
@@ -19,6 +19,7 @@ parameters:
runCrossGen2: ''
compositeBuildMode: false
helixProjectArguments: ''
+ extraHelixArguments: ''
runInUnloadableContext: ''
tieringTest: ''
hotColdSplitting: ''
@@ -38,7 +39,7 @@ steps:
- template: send-to-helix-inner-step.yml
parameters:
osGroup: ${{ parameters.osGroup }}
- sendParams: ${{ parameters.helixProjectArguments }} ${{ parameters.msbuildParallelism }} /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog /p:TargetArchitecture=${{ parameters.archType }} /p:TargetOS=${{ parameters.osGroup }} /p:TargetOSSubgroup=${{ parameters.osSubgroup }} /p:Configuration=${{ parameters.buildConfig }}
+ sendParams: ${{ parameters.helixProjectArguments }} ${{ parameters.msbuildParallelism }} /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog /p:TargetArchitecture=${{ parameters.archType }} /p:TargetOS=${{ parameters.osGroup }} /p:TargetOSSubgroup=${{ parameters.osSubgroup }} /p:Configuration=${{ parameters.buildConfig }} ${{ parameters.extraHelixArguments }}
condition: and(succeeded(), ${{ parameters.condition }})
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
displayName: ${{ parameters.displayName }}
diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml
index ab081b2c3c441..53c87a96c93d8 100644
--- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml
+++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml
@@ -90,9 +90,7 @@ jobs:
- template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
parameters:
creator: dotnet-bot
- compileOnHelix: true
- interpreter: true
- testBuildArgs: /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildTestsOnHelix=true
+ testBuildArgs: /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:MonoForceInterpreter=true
testRunNamePrefixSuffix: Mono_$(_BuildConfig)
extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true
diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml
index 714acd5b9c159..49c2aae22c851 100644
--- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml
+++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml
@@ -89,9 +89,7 @@ jobs:
- template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
parameters:
creator: dotnet-bot
- compileOnHelix: true
- interpreter: true
- testBuildArgs: /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:MonoForceInterpreter=true /p:BuildTestsOnHelix=true
+ testBuildArgs: /p:DevTeamProvisioning=- /p:RunAOTCompilation=true /p:MonoForceInterpreter=true
testRunNamePrefixSuffix: Mono_$(_BuildConfig)
extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true
diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj
index 5a44eaeb79463..3be616d333f42 100644
--- a/src/tests/Common/helixpublishwitharcade.proj
+++ b/src/tests/Common/helixpublishwitharcade.proj
@@ -331,13 +331,19 @@
+
+
+ <_AppBundleRunScriptName>RunTests
+ <_AppBundleRunScriptName Condition="'$(TargetsAppleMobile)' == 'true' and '$(NeedsToBuildAppsOnHelix)' == 'true'">build-apple-app
+
+
<_MergedWrapperMarker Include="$(TestBinDir)**\*.MergedTestAssembly" Exclude="$(TestBinDir)**\supportFiles\*.MergedTestAssembly" />
<_MergedWrapperMarker Update="@(_MergedWrapperMarker)">
$([System.IO.Path]::ChangeExtension('%(Identity)', '.$(TestScriptExtension)'))
- %(RootDir)%(Directory)AppBundle/RunTests.$(TestScriptExtension)
+ %(RootDir)%(Directory)AppBundle/$(_AppBundleRunScriptName).$(TestScriptExtension)
@@ -536,7 +542,7 @@
@@ -573,9 +579,45 @@
-
+
+
+
+
+
+ <_MergedWrapperDirectory>%(_MergedWrapperMarker.RootDir)%(Directory)
+ <_MergedWrapperName>%(_MergedWrapperMarker.FileName)
+
+
+
+ <_MergedPayloadGroups Include="$(_MergedWrapperName)" />
+ <_MergedPayloadFiles Include="$(_MergedWrapperDirectory)AppBundle/**" />
+ <_MergedPayloadFiles Update="@(_MergedPayloadFiles)" Condition="'@(_MergedPayloadFiles)' != ''" >
+
+ $([System.IO.Path]::GetRelativePath('$(_MergedWrapperDirectory)AppBundle/', %(FullPath)))
+
+
+ <_TestExclusionListPlaceholder Include="@(_MergedPayloadFiles)" Condition="$([System.String]::new('%(FileName)').EndsWith('TestExclusionList'))" />
+ <_MergedPayloadFiles Remove="@(_TestExclusionListPlaceholder)" />
+
+
+
+
+
+
-
+
@@ -592,7 +634,9 @@
DestinationFile="$(LegacyPayloadsRootDirectory)\%(LegacyPayloads.PayloadGroup).zip" />
-
+
@@ -863,6 +907,61 @@
+
+
+
+ $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'mono', 'msbuild', 'apple', 'build'))
+ $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'mono', 'msbuild', 'common'))
+ https://netcorenativeassets.blob.core.windows.net/resource-packages/external/macos/cmake/cmake-3.28.0-macos-universal.tar.gz
+
+ <_XHarnessAppleCustomCommand>
+ source build-apple-app.sh
+
+ <_RuntimeComponentManifestDir>$([MSBuild]::NormalizeDirectory('$(MonoArtifactsPath)', 'build'))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_XHarnessAppBundleZipWorkItems Include="@(XHarnessAppBundleToTest->'$(MergedPayloadsRootDirectory)%(PayloadGroup).zip')" RemoveMetadata="AppBundlePath">
+ $(_XHarnessAppleCustomCommand)
+
+
+
+
+
+
+
$(HelixPreCommands);codesign -s - -f --preserve-metadata=entitlements $HELIX_CORRELATION_PAYLOAD/createdump
diff --git a/src/tests/Common/mergedrunnermobile.targets b/src/tests/Common/mergedrunnermobile.targets
index 7371cdc702c5a..187120666f49f 100644
--- a/src/tests/Common/mergedrunnermobile.targets
+++ b/src/tests/Common/mergedrunnermobile.targets
@@ -5,6 +5,8 @@
$(AssemblyName).dll
$(AssemblyName).dll
GeneratedRunner
+
+ false
@@ -44,4 +46,4 @@
-
\ No newline at end of file
+
diff --git a/src/tests/Directory.Build.targets b/src/tests/Directory.Build.targets
index 8e7b97442b55b..1445fe5d407a9 100644
--- a/src/tests/Directory.Build.targets
+++ b/src/tests/Directory.Build.targets
@@ -9,29 +9,6 @@
-
- $(TargetOS).AnyCPU.$(Configuration)
- $(ArtifactsDir)helix/
- $(TestArchiveRoot)tests/
- $(TestArchiveTestsRoot)$(OSPlatformConfig)/
- $(TestArchiveRoot)runtime/
-
- BuildMonoiOSApp
- BuildMonoiOSApp
- GenerateRunScript
-
- true
-
-
-
-
-
-
- $(ArtifactsDir)/tests/coreclr/obj/$(TargetOS).$(Platform).$(Configuration)/Managed/build/iOSApps/$(TestProjectName)/AppBundle
-
-
-
true
diff --git a/src/tests/build.proj b/src/tests/build.proj
index 96b6595c4ba91..c43c1f48b4486 100644
--- a/src/tests/build.proj
+++ b/src/tests/build.proj
@@ -508,7 +508,7 @@
-
+
@@ -521,7 +521,6 @@
-
@@ -622,6 +621,10 @@
$(GroupBuildCmd) "/p:IlcMultiModule=true"
$(GroupBuildCmd) "/p:IlcUseServerGc=false"
$(GroupBuildCmd) "/p:BuildNativeAotFrameworkObjects=true"
+ $(GroupBuildCmd) /p:ContinuousIntegrationBuild=true
+ $(GroupBuildCmd) "/p:BuildTestsOnHelix=true"
+ $(GroupBuildCmd) "/p:MonoForceInterpreter=true"
+ $(GroupBuildCmd) "/p:DevTeamProvisioning=$(DevTeamProvisioning)"