From 822a7beb4752422d25ed3f011fc441df6a285d81 Mon Sep 17 00:00:00 2001 From: Joseph Shields Date: Wed, 11 Mar 2020 14:51:56 -0400 Subject: [PATCH] parent 87e1674da8daaa0f13e374385035039d3ef9cdde author Joseph Shields 1583952716 -0400 committer Nathan Ricci 1586815263 -0400 Add Mono run of CoreCLR Pri0 tests Changes to exclude mono failures. build-test-job.yml Changes to runtime.yml Changes to runtime.yml Got rid of parameter. Removed parameter. reverse changesin runtime. Simplified some things. Combined mono/clore build-test-job.yml into one file in common. Removed onld build-test-job.yml Removed white space. Missing parens. Removed undeed mono build-test-job. Removed run-test-job.yml Added build-job back; still needed. Added back a change that got lost in merge. Got rid of compile time evaluation of runtime stuff. Moved xplat-pipeline-job to common. Updated paths. More path updates. Moved xplat-job. Undid file moves. Refer to different templates based on runtime parameters. reverted changes to build-job. Updated build-test-job. Moved to a mono version of run-test-job. Back to seperate versions of run-test-job.yml Added back mono version of run-test-job.yml Moved references to common version of build-test. Build test job.yml Moved send-to-helix-step to common. Removed mono specific send-to-helix-step. Moved run-test-job.yml into common. Fixed run-test-job. Fixed run test job again. Fixed run test job again. Fixed run test job again. Removed mono specific version of run-test-job. Removed windows from mono coreclr test platforms until that script is written. Added some variables to mono version of xplat-job. Made building tests depend explicitly on coreclr. Made mono also get CoreCLR. Fixed spacing. Fixed syntax error. build-test-job.yml Changed dispaly name. Changed dispaly name. Fixed variable name. Fixed white space. Testing some yml. Reversed changes. Removed - Used each. Add liveRuntimeBuildConfig parameter. Add liveRuntimeBuildConfig parameter. removed redundant definition. removed redundant definition. removed redundant paramter. Fixed typos, display names. Added display name. Use display name. Added missing : Fixed spelling errors. Fixed spelling error. Fixed spelling error. Canged CoreCLRProductBuild to always use release Use display name. Commented out other architecturs for debugging. Added runtimeFlavorDisplayName explicitly in runtime.yml Added missing variables to mono version of xplat-pipeline job Put in missing variables. More missing variables. More missing variables. Changed hardcoded release. Added liveRuntimeBuildConfig. Changed to parameter. Changed to parameter. Trying to make everything build in release. Messing with different configs. Made everything checked. Added runtime flavor to run-test-job name. Fixed spelling on parameters. Made all the mono stuff build in debug. Made more things debug. Changed everything to release. Made everthing release, again. Changed to run test job. Added missing space. run-test-job.yml Fixed msbuild invocation. Pushing a white space change. Removed white space change. Removed unneeded single quotes. --- .../templates/build-test-job.yml | 34 ++++++++--- .../templates/run-test-job.yml | 28 ++++++--- .../templates/send-to-helix-step.yml | 0 eng/pipelines/common/xplat-setup.yml | 4 ++ eng/pipelines/coreclr/ci.yml | 4 +- eng/pipelines/coreclr/corefx-jitstress.yml | 2 +- .../corefx-jitstress2-jitstressregs.yml | 2 +- .../coreclr/corefx-jitstressregs.yml | 2 +- eng/pipelines/coreclr/corefx.yml | 2 +- eng/pipelines/coreclr/crossgen2-outerloop.yml | 2 +- eng/pipelines/coreclr/crossgen2.yml | 2 +- eng/pipelines/coreclr/gc-longrunning.yml | 2 +- eng/pipelines/coreclr/jitstress-isas-x86.yml | 2 +- eng/pipelines/coreclr/release-tests.yml | 4 +- eng/pipelines/coreclr/templates/test-job.yml | 2 +- eng/pipelines/mono/templates/build-job.yml | 6 +- eng/pipelines/mono/templates/xplat-job.yml | 10 ++++ .../mono/templates/xplat-pipeline-job.yml | 35 +++++++++++ eng/pipelines/runtime.yml | 58 +++++++++++++++++-- 19 files changed, 164 insertions(+), 37 deletions(-) rename eng/pipelines/{coreclr => common}/templates/build-test-job.yml (74%) rename eng/pipelines/{coreclr => common}/templates/run-test-job.yml (89%) rename eng/pipelines/{coreclr => common}/templates/send-to-helix-step.yml (100%) diff --git a/eng/pipelines/coreclr/templates/build-test-job.yml b/eng/pipelines/common/templates/build-test-job.yml similarity index 74% rename from eng/pipelines/coreclr/templates/build-test-job.yml rename to eng/pipelines/common/templates/build-test-job.yml index 75650136520d5..af5373f530ffc 100644 --- a/eng/pipelines/coreclr/templates/build-test-job.yml +++ b/eng/pipelines/common/templates/build-test-job.yml @@ -5,6 +5,7 @@ parameters: osSubgroup: '' container: '' testGroup: '' + liveRuntimeBuildConfig: '' # When set to a non-empty value (Debug / Release), it determines libraries # build configuration to use for the tests. Setting this property implies @@ -18,6 +19,7 @@ parameters: stagedBuild: false variables: {} pool: '' + runtimeFlavorDisplayName: 'CoreCLR' ### Build managed test components (native components are getting built as part ### of the the product build job). @@ -27,8 +29,9 @@ parameters: ### over to its reference assembly we should be able to remove this dependency and ### run managed test builds in parallel with the product build job. + jobs: -- template: xplat-pipeline-job.yml +- template: /eng/pipelines/${{ parameters.runtimeFlavor }}/templates/xplat-pipeline-job.yml parameters: buildConfig: ${{ parameters.buildConfig }} archType: ${{ parameters.archType }} @@ -40,21 +43,25 @@ jobs: testGroup: ${{ parameters.testGroup }} stagedBuild: ${{ parameters.stagedBuild }} liveLibrariesBuildConfig: ${{ parameters.liveLibrariesBuildConfig }} - variables: ${{ parameters.variables }} + variables: + - runtimeFlavorArgs: '' + - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + - runtimeFlavorArgs: '-excludemonofailures' + - ${{ each variable in parameters.variables }}: + - ${{insert}}: ${{ variable }} pool: ${{ parameters.pool }} # Test jobs should continue on error for internal builds ${{ if eq(variables['System.TeamProject'], 'internal') }}: continueOnError: true - # Compute job name from template parameters ${{ if eq(parameters.testGroup, 'innerloop') }}: - name: 'coreclr_test_build_p0_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}' - displayName: 'CoreCLR Pri0 Test Build ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}' + name: '${{ parameters.runtimeFlavor }}_test_build_p0_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}' + displayName: '${{ parameters.runtimeFlavorDisplayName }} Pri0 Test Build ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}' ${{ if ne(parameters.testGroup, 'innerloop') }}: - name: 'coreclr_test_build_p1_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}' - displayName: 'CoreCLR Pri1 Test Build ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}' + name: '${{ parameters.runtimeFlavor }}_test_build_p1_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}' + displayName: '${{ parameters.runtimeFlavorDisplayName }} Pri1 Test Build ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}' # Since the condition is being altered, merge the default with the additional conditions. # See https://docs.microsoft.com/azure/devops/pipelines/process/conditions @@ -65,7 +72,7 @@ jobs: # by switching over to using reference assembly. ${{ if ne(parameters.stagedBuild, true) }}: dependsOn: - - ${{ format('coreclr_product_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} + - ${{ format('coreclr_product_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, coalesce(parameters.liveRuntimeBuildConfig, parameters.buildConfig)) }} - ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}: - ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveLibrariesBuildConfig) }} @@ -98,6 +105,15 @@ jobs: artifactName: '$(librariesBuildArtifactName)' displayName: 'live-built libraries' + - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + # We need to explictly download CoreCLR for Mono + - template: /eng/pipelines/common/download-artifact-step.yml + parameters: + unpackFolder: $(coreClrProductRootFolderPath) + artifactFileName: '$(coreClrProductArtifactName)$(archiveExtension)' + artifactName: '$(coreClrProductArtifactName)' + displayName: 'CoreCLR product build for Mono' + # Download product binaries directory - template: /eng/pipelines/common/download-artifact-step.yml @@ -109,7 +125,7 @@ jobs: # Build managed test components - - script: $(coreClrRepoRootDir)build-test$(scriptExt) skipnative skipgeneratelayout skiptestwrappers $(buildConfig) $(archType) $(crossArg) $(priorityArg) ci $(librariesOverrideArg) + - script: $(coreClrRepoRootDir)build-test$(scriptExt) $(runtimeFlavorArgs) skipnative skipgeneratelayout skiptestwrappers $(buildConfig) $(archType) $(crossArg) $(priorityArg) ci $(librariesOverrideArg) displayName: Build managed test components diff --git a/eng/pipelines/coreclr/templates/run-test-job.yml b/eng/pipelines/common/templates/run-test-job.yml similarity index 89% rename from eng/pipelines/coreclr/templates/run-test-job.yml rename to eng/pipelines/common/templates/run-test-job.yml index 4bdb1d38891bf..54db9447708dc 100644 --- a/eng/pipelines/coreclr/templates/run-test-job.yml +++ b/eng/pipelines/common/templates/run-test-job.yml @@ -20,6 +20,7 @@ parameters: runInUnloadableContext: false variables: {} pool: '' + runtimeFlavorDisplayName: 'CoreCLR' ### Test run job @@ -27,7 +28,7 @@ parameters: ### buildConfig and archType. jobs: -- template: xplat-pipeline-job.yml +- template: /eng/pipelines/${{ parameters.runtimeFlavor }}/templates/xplat-pipeline-job.yml parameters: buildConfig: ${{ parameters.buildConfig }} archType: ${{ parameters.archType }} @@ -52,22 +53,22 @@ jobs: dependsOn: - ${{ if ne(parameters.corefxTests, true) }}: - ${{ if eq(parameters.testGroup, 'innerloop') }}: - - 'coreclr_test_build_p0_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.archType }}_${{parameters.buildConfig }}' + - '${{ parameters.runtimeFlavor }}_test_build_p0_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.archType }}_${{parameters.buildConfig }}' - ${{ if ne(parameters.testGroup, 'innerloop') }}: - - 'coreclr_test_build_p1_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.archType }}_${{parameters.buildConfig }}' + - '${{ parameters.runtimeFlavor }}_test_build_p1_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.archType }}_${{parameters.buildConfig }}' - ${{ if ne(parameters.stagedBuild, true) }}: - - ${{ format('coreclr_product_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} + - ${{ format('{0}_product_build_{1}{2}_{3}_{4}', parameters.runtimeFlavor, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} - ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}: - ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveLibrariesBuildConfig) }} # Compute job name from template parameters ${{ if eq(parameters.testGroup, 'innerloop') }}: - name: 'run_test_p0_${{ parameters.displayNameArgs }}_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}' - displayName: 'CoreCLR Pri0 Test Run ${{ parameters.displayNameArgs }} ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}' + name: 'run_test_p0_${{ parameters.runtimeFlavor }}_${{ parameters.displayNameArgs }}_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}' + displayName: '${{ parameters.runtimeFlavorDisplayName }} Pri0 Test Run ${{ parameters.displayNameArgs }} ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}' ${{ if ne(parameters.testGroup, 'innerloop') }}: name: 'run_test_p1_${{ parameters.displayNameArgs }}_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}' - displayName: 'CoreCLR Pri1 Test Run ${{ parameters.displayNameArgs }} ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}' + displayName: '${{ parameters.runtimeFlavorDisplayName }} Pri1 Test Run ${{ parameters.displayNameArgs }} ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}' variables: - name: testhostArg @@ -190,6 +191,17 @@ jobs: displayName: 'product build' + - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + # We need to explictly download CoreCLR for Mono + - template: /eng/pipelines/common/download-artifact-step.yml + parameters: + unpackFolder: $(coreClrProductRootFolderPath) + artifactFileName: '$(coreClrProductArtifactName)$(archiveExtension)' + artifactName: '$(coreClrProductArtifactName)' + displayName: 'CoreCLR product download for Mono' + + - script: msbuild $(monoRepoRoot)/mono.proj -target:PatchCoreClrCoreRoot + # Download and unzip the Microsoft.NET.Sdk.IL package needed for traversing # ilproj test projects during copynativeonly. - ${{ if ne(parameters.corefxTests, true) }}: @@ -239,7 +251,7 @@ jobs: # Send tests to Helix - - template: /eng/pipelines/coreclr/templates/send-to-helix-step.yml + - template: /eng/pipelines/common/templates/send-to-helix-step.yml parameters: displayName: Send tests to Helix buildConfig: $(buildConfigUpper) diff --git a/eng/pipelines/coreclr/templates/send-to-helix-step.yml b/eng/pipelines/common/templates/send-to-helix-step.yml similarity index 100% rename from eng/pipelines/coreclr/templates/send-to-helix-step.yml rename to eng/pipelines/common/templates/send-to-helix-step.yml diff --git a/eng/pipelines/common/xplat-setup.yml b/eng/pipelines/common/xplat-setup.yml index 65777987497a0..3685372654beb 100644 --- a/eng/pipelines/common/xplat-setup.yml +++ b/eng/pipelines/common/xplat-setup.yml @@ -11,6 +11,10 @@ parameters: jobs: - template: ${{ coalesce(parameters.helixQueuesTemplate, parameters.jobTemplate) }} parameters: + ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}: + runtimeFlavorDisplayName: 'CoreCLR' + ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + runtimeFlavorDisplayName: 'Mono' variables: # Workaround for azure devops flakiness when dowloading artifacts # https://github.com/dotnet/runtime/issues/32805 diff --git a/eng/pipelines/coreclr/ci.yml b/eng/pipelines/coreclr/ci.yml index 0249dc33eba23..ce1fe419bb386 100644 --- a/eng/pipelines/coreclr/ci.yml +++ b/eng/pipelines/coreclr/ci.yml @@ -113,7 +113,7 @@ jobs: # - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml + jobTemplate: /eng/pipelines/common/templates/run-test-job.yml buildConfig: checked platformGroup: all helixQueueGroup: ci @@ -127,7 +127,7 @@ jobs: # - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml + jobTemplate: /eng/pipelines/common/templates/run-test-job.yml buildConfig: checked platforms: - Linux_arm64 diff --git a/eng/pipelines/coreclr/corefx-jitstress.yml b/eng/pipelines/coreclr/corefx-jitstress.yml index 117923beb5eb2..3fed9e0cafd8b 100644 --- a/eng/pipelines/coreclr/corefx-jitstress.yml +++ b/eng/pipelines/coreclr/corefx-jitstress.yml @@ -33,7 +33,7 @@ jobs: - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml + jobTemplate: /eng/pipelines/common/templates/run-test-job.yml buildConfig: checked platforms: # TODO: add Windows_NT_arm64, when we have hardware available, and .NET Core supports it. Note: platform-matrix.yml needs to enable a Helix queue for this. diff --git a/eng/pipelines/coreclr/corefx-jitstress2-jitstressregs.yml b/eng/pipelines/coreclr/corefx-jitstress2-jitstressregs.yml index 9b3064766f131..ad23e5e0be99f 100644 --- a/eng/pipelines/coreclr/corefx-jitstress2-jitstressregs.yml +++ b/eng/pipelines/coreclr/corefx-jitstress2-jitstressregs.yml @@ -33,7 +33,7 @@ jobs: - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml + jobTemplate: /eng/pipelines/common/templates/run-test-job.yml buildConfig: checked platforms: # TODO: add Windows_NT_arm64, when we have hardware available, and .NET Core supports it. Note: platform-matrix.yml needs to enable a Helix queue for this. diff --git a/eng/pipelines/coreclr/corefx-jitstressregs.yml b/eng/pipelines/coreclr/corefx-jitstressregs.yml index 476666287241b..bc61d949b07f0 100644 --- a/eng/pipelines/coreclr/corefx-jitstressregs.yml +++ b/eng/pipelines/coreclr/corefx-jitstressregs.yml @@ -33,7 +33,7 @@ jobs: - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml + jobTemplate: /eng/pipelines/common/templates/run-test-job.yml buildConfig: checked platforms: # TODO: add Windows_NT_arm64, when we have hardware available, and .NET Core supports it. Note: platform-matrix.yml needs to enable a Helix queue for this. diff --git a/eng/pipelines/coreclr/corefx.yml b/eng/pipelines/coreclr/corefx.yml index e2fb3c28d4e15..7f5f13a3ba4f2 100644 --- a/eng/pipelines/coreclr/corefx.yml +++ b/eng/pipelines/coreclr/corefx.yml @@ -33,7 +33,7 @@ jobs: - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml + jobTemplate: /eng/pipelines/common/templates/run-test-job.yml buildConfig: checked platforms: # TODO: add Windows_NT_arm64, when we have hardware available, and .NET Core supports it. Note: platform-matrix.yml needs to enable a Helix queue for this. diff --git a/eng/pipelines/coreclr/crossgen2-outerloop.yml b/eng/pipelines/coreclr/crossgen2-outerloop.yml index d31a45088687b..4a98724962700 100644 --- a/eng/pipelines/coreclr/crossgen2-outerloop.yml +++ b/eng/pipelines/coreclr/crossgen2-outerloop.yml @@ -40,7 +40,7 @@ jobs: - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml + jobTemplate: /eng/pipelines/common/templates/run-test-job.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml buildConfig: checked platforms: diff --git a/eng/pipelines/coreclr/crossgen2.yml b/eng/pipelines/coreclr/crossgen2.yml index 3d1ea01d4f69d..0a9b3cf75a9fd 100644 --- a/eng/pipelines/coreclr/crossgen2.yml +++ b/eng/pipelines/coreclr/crossgen2.yml @@ -40,7 +40,7 @@ jobs: - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml + jobTemplate: /eng/pipelines/common/templates/run-test-job.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml buildConfig: checked platforms: diff --git a/eng/pipelines/coreclr/gc-longrunning.yml b/eng/pipelines/coreclr/gc-longrunning.yml index 5d3ec8f9e5335..5195927687fe2 100644 --- a/eng/pipelines/coreclr/gc-longrunning.yml +++ b/eng/pipelines/coreclr/gc-longrunning.yml @@ -43,7 +43,7 @@ jobs: - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml + jobTemplate: /eng/pipelines/common/templates/run-test-job.yml buildConfig: release platforms: - Linux_x64 diff --git a/eng/pipelines/coreclr/jitstress-isas-x86.yml b/eng/pipelines/coreclr/jitstress-isas-x86.yml index 52d977d4b7ea4..be611a80264cc 100644 --- a/eng/pipelines/coreclr/jitstress-isas-x86.yml +++ b/eng/pipelines/coreclr/jitstress-isas-x86.yml @@ -42,7 +42,7 @@ jobs: - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml + jobTemplate: /eng/pipelines/common/templates/run-test-job.yml buildConfig: checked platforms: - Linux_x64 diff --git a/eng/pipelines/coreclr/release-tests.yml b/eng/pipelines/coreclr/release-tests.yml index 29342df4f6153..3a549dad7a0f7 100644 --- a/eng/pipelines/coreclr/release-tests.yml +++ b/eng/pipelines/coreclr/release-tests.yml @@ -44,7 +44,7 @@ jobs: # - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml + jobTemplate: /eng/pipelines/common/templates/run-test-job.yml buildConfig: release platformGroup: all helixQueueGroup: ci @@ -58,7 +58,7 @@ jobs: # - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml + jobTemplate: /eng/pipelines/common/templates/run-test-job.yml buildConfig: release platformGroup: all helixQueueGroup: ci diff --git a/eng/pipelines/coreclr/templates/test-job.yml b/eng/pipelines/coreclr/templates/test-job.yml index e1679923841cb..ab3a4e48335e5 100644 --- a/eng/pipelines/coreclr/templates/test-job.yml +++ b/eng/pipelines/coreclr/templates/test-job.yml @@ -42,7 +42,7 @@ jobs: variables: ${{ parameters.variables }} pool: ${{ parameters.pool }} -- template: /eng/pipelines/coreclr/templates/run-test-job.yml +- template: /eng/pipelines/common/templates/run-test-job.yml parameters: buildConfig: ${{ parameters.buildConfig }} liveLibrariesBuildConfig: ${{ parameters.liveLibrariesBuildConfig }} diff --git a/eng/pipelines/mono/templates/build-job.yml b/eng/pipelines/mono/templates/build-job.yml index 878f34e937419..e554e749a1c83 100644 --- a/eng/pipelines/mono/templates/build-job.yml +++ b/eng/pipelines/mono/templates/build-job.yml @@ -53,8 +53,10 @@ jobs: value: ${{ parameters.osSubgroup }} - name: officialBuildIdArg value: '' - - name: osOverride - value: '' + # Strip symbols only on the release build + - ${{ if eq(parameters.buildConfig, 'Release') }}: + - name: stripSymbolsArg + value: '-stripsymbols' - ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}: - name: officialBuildIdArg value: '/p:officialBuildId=$(Build.BuildNumber)' diff --git a/eng/pipelines/mono/templates/xplat-job.yml b/eng/pipelines/mono/templates/xplat-job.yml index 2cd61dc7e7f3e..c6e8864e41137 100644 --- a/eng/pipelines/mono/templates/xplat-job.yml +++ b/eng/pipelines/mono/templates/xplat-job.yml @@ -90,6 +90,16 @@ jobs: - name: osSubgroup value: ${{ parameters.osSubgroup }} + - name: coreClrRepoRoot + value: '$(Build.SourcesDirectory)/src/coreclr' + + - name: coreClrRepoRootDir + value: '$(coreClrRepoRoot)$(dir)' + + - name: priorityArg + value: '' + + - ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource value: official/dotnet/runtime/$(Build.SourceBranch) diff --git a/eng/pipelines/mono/templates/xplat-pipeline-job.yml b/eng/pipelines/mono/templates/xplat-pipeline-job.yml index a0d6584520392..052b0f59fcdaa 100644 --- a/eng/pipelines/mono/templates/xplat-pipeline-job.yml +++ b/eng/pipelines/mono/templates/xplat-pipeline-job.yml @@ -10,6 +10,7 @@ parameters: strategy: '' pool: '' llvm: false + liveRuntimeBuildConfig: 'release' # arcade-specific parameters condition: true @@ -46,15 +47,49 @@ jobs: gatherAssetManifests: ${{ parameters.gatherAssetManifests }} variables: + + - name: coreClrProductArtifactName + value: 'CoreCLRProduct_$(osGroup)$(osSubgroup)_$(archType)_${{ parameters.liveRuntimeBuildConfig }}' + + - name: coreClrProductRootFolderPath + value: '$(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).$(archType).${{ parameters.liveRuntimeBuildConfig }}' + - name: buildProductArtifactName ${{ if ne(parameters.llvm, true) }}: value: 'MonoProduct_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)' ${{ if eq(parameters.llvm, true) }}: value: 'MonoProduct_LLVM_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)' + - name: binTestsPath + value: '$(Build.SourcesDirectory)/artifacts/tests/coreclr' + - name: buildProductRootFolderPath value: '$(Build.SourcesDirectory)/artifacts/bin/mono/$(osGroup).$(archType).$(buildConfigUpper)' + - name: managedTestArtifactRootFolderPath + value: '$(binTestsPath)/$(osGroup).$(archType).$(buildConfigUpper)' + + - name: managedTestArtifactName + value: 'CoreCLRManagedTestArtifacts_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_$(archType)_$(buildConfig)' + + - name: microsoftNetSdkIlFolderPath + value: '$(Build.SourcesDirectory)/.packages/microsoft.net.sdk.il' + + - name: microsoftNetSdkIlArtifactName + value: 'MicrosoftNetSdkIlPackage_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_$(archType)_$(buildConfig)' + + - name: monoRepoRoot + value: '$(Build.SourcesDirectory)/src/mono' + + - name: nativeTestArtifactName + value: 'CoreCLRNativeTestArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)' + + - name: nativeTestArtifactRootFolderPath + value: '$(binTestsPath)/obj/$(osGroup).$(archType).$(buildConfigUpper)' + + + + - librariesBuildArtifactName: '' - librariesOverrideArg: '' - librariesDownloadDir: '' diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 8f909825a4311..a17e1a1917d1e 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -229,7 +229,7 @@ jobs: parameters: jobTemplate: /eng/pipelines/mono/templates/build-job.yml runtimeFlavor: mono - buildConfig: debug + buildConfig: debug platforms: - iOS_x64 - iOS_arm @@ -529,7 +529,7 @@ jobs: # - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-test-job.yml + jobTemplate: /eng/pipelines/common/templates/build-test-job.yml buildConfig: checked platforms: - Linux_arm @@ -550,7 +550,7 @@ jobs: # - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-test-job.yml + jobTemplate: /eng/pipelines/common/templates/build-test-job.yml buildConfig: checked platforms: - OSX_x64 @@ -571,7 +571,7 @@ jobs: # - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml + jobTemplate: /eng/pipelines/common/templates/run-test-job.yml buildConfig: checked platforms: - Linux_arm @@ -590,7 +590,7 @@ jobs: - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml + jobTemplate: /eng/pipelines/common/templates/run-test-job.yml buildConfig: checked platforms: - OSX_x64 @@ -607,6 +607,54 @@ jobs: eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), eq(variables['isFullMatrix'], true)) +# +# Mono Test builds using live libraries debug build +# Only when Mono is changed +# TODO: Add Windows_NT_x64 to platform ones the script for windows is written +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/build-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - OSX_x64 + # - Linux_x64 + # - Linux_arm64 + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + liveRuntimeBuildConfig: release + runtimeFlavorDisplayName: 'Mono' + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Mono Test executions using live libraries +# Only when Mono is changed +# TODO: Add Windows_NT_x64 to platform ones the script for windows is written +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/run-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - OSX_x64 + # - Linux_x64 + # - Linux_arm64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + liveRuntimeBuildConfig: release + runtimeFlavorDisplayName: 'Mono' + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) + # # Libraries Release Test Execution against a release mono runtime. # Only when libraries or mono changed