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)"