diff --git a/eng/pipelines/coreclr/templates/build-test-job.yml b/eng/pipelines/common/templates/runtimes/build-test-job.yml similarity index 76% rename from eng/pipelines/coreclr/templates/build-test-job.yml rename to eng/pipelines/common/templates/runtimes/build-test-job.yml index 75650136520d5..00a072edc599a 100644 --- a/eng/pipelines/coreclr/templates/build-test-job.yml +++ b/eng/pipelines/common/templates/runtimes/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 }} @@ -47,14 +50,13 @@ jobs: ${{ 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 }}_common_test_build_p0_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}' + displayName: '${{ parameters.runtimeFlavorDisplayName }} Common 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 }}_common_test_build_p1_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}' + displayName: '${{ parameters.runtimeFlavorDisplayName }} Common 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 +67,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 +100,15 @@ jobs: artifactName: '$(librariesBuildArtifactName)' displayName: 'live-built libraries' + - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + # We need to explictly download CoreCLR for Mono because the CoreCLR tests depend on it + - 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 @@ -143,6 +154,6 @@ jobs: displayName: Publish Logs inputs: targetPath: $(Build.SourcesDirectory)/artifacts/log - artifactName: 'TestBuildLogs_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)_${{ parameters.testGroup }}' + artifactName: '${{ parameters.runtimeFlavor }}_Common_Runtime_TestBuildLogs_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)_${{ parameters.testGroup }}' continueOnError: true condition: always() diff --git a/eng/pipelines/coreclr/templates/run-test-job.yml b/eng/pipelines/common/templates/runtimes/run-test-job.yml similarity index 85% rename from eng/pipelines/coreclr/templates/run-test-job.yml rename to eng/pipelines/common/templates/runtimes/run-test-job.yml index 94c73b7a094d8..ba72a9aababf0 100644 --- a/eng/pipelines/coreclr/templates/run-test-job.yml +++ b/eng/pipelines/common/templates/runtimes/run-test-job.yml @@ -21,6 +21,7 @@ parameters: runInUnloadableContext: false variables: {} pool: '' + runtimeFlavorDisplayName: 'CoreCLR' ### Test run job @@ -28,7 +29,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 }} @@ -53,22 +54,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 }}_common_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 }}_common_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 @@ -77,6 +78,13 @@ jobs: - name: testhostArg value: 'buildtesthostonly' + - name: runtimeFlavorArgs + value: '' + + - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + - name: runtimeFlavorArgs + value: '-excludemonofailures' + - name: crossgenArg value: '' - name: LogNamePrefix @@ -198,6 +206,23 @@ 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: $(_msbuildCommand) + $(Build.SourcesDirectory)/src/mono/mono.proj + /t:PatchCoreClrCoreRoot + /p:Configuration=$(buildConfig) + /p:TargetArchitecture=$(archType) + displayName: "Patch dotnet with mono" + + # Download and unzip the Microsoft.NET.Sdk.IL package needed for traversing # ilproj test projects during copynativeonly. - ${{ if ne(parameters.corefxTests, true) }}: @@ -235,8 +260,8 @@ jobs: displayName: Generate test host - # Generate test wrappers - - script: $(coreClrRepoRootDir)build-test$(scriptExt) buildtestwrappersonly $(crossgenArg) $(buildConfig) $(archType) $(crossArg) $(priorityArg) $(librariesOverrideArg) + # Generate test wrappers. This is the step that examines issues.targets to exclude tests. + - script: $(coreClrRepoRootDir)build-test$(scriptExt) buildtestwrappersonly $(runtimeFlavorArgs) $(crossgenArg) $(buildConfig) $(archType) $(crossArg) $(priorityArg) $(librariesOverrideArg) displayName: Generate test wrappers @@ -247,13 +272,14 @@ jobs: # Send tests to Helix - - template: /eng/pipelines/coreclr/templates/send-to-helix-step.yml + - 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 }} coreClrRepoRoot: $(coreClrRepoRoot) + runtimeFlavorDisplayName: ${{ parameters.runtimeFlavorDisplayName }} ${{ if eq(variables['System.TeamProject'], 'public') }}: creator: $(Build.DefinitionName) @@ -426,6 +452,6 @@ jobs: displayName: Publish Logs inputs: targetPath: $(Build.SourcesDirectory)/artifacts/log - artifactName: '$(LogNamePrefix)_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)_${{ parameters.testGroup }}' + artifactName: '${{ parameters.runtimeFlavor }}_$(LogNamePrefix)_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)_${{ parameters.testGroup }}' continueOnError: true condition: always() diff --git a/eng/pipelines/coreclr/templates/send-to-helix-step.yml b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml similarity index 96% rename from eng/pipelines/coreclr/templates/send-to-helix-step.yml rename to eng/pipelines/common/templates/runtimes/send-to-helix-step.yml index 0c9f46cbd75dc..54108f33389ae 100644 --- a/eng/pipelines/coreclr/templates/send-to-helix-step.yml +++ b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml @@ -22,6 +22,7 @@ parameters: longRunningGcTests: '' gcSimulatorTests: '' coreClrRepoRoot: '' + runtimeFlavorDisplayName: 'CoreCLR' steps: - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: @@ -55,6 +56,7 @@ steps: _Scenarios: ${{ join(',', parameters.scenarios) }} _TimeoutPerTestCollectionInMinutes: ${{ parameters.timeoutPerTestCollectionInMinutes }} _TimeoutPerTestInMinutes: ${{ parameters.timeoutPerTestInMinutes }} + runtimeFlavorDisplayName: ${{ parameters.runtimeFlavorDisplayName }} ${{ if eq(parameters.publishTestResults, 'true') }}: SYSTEM_ACCESSTOKEN: $(System.AccessToken) # TODO: remove NUGET_PACKAGES once https://github.com/dotnet/arcade/issues/1578 is fixed @@ -95,6 +97,7 @@ steps: _Scenarios: ${{ join(',', parameters.scenarios) }} _TimeoutPerTestCollectionInMinutes: ${{ parameters.timeoutPerTestCollectionInMinutes }} _TimeoutPerTestInMinutes: ${{ parameters.timeoutPerTestInMinutes }} + runtimeFlavorDisplayName: ${{ parameters.runtimeFlavorDisplayName }} ${{ if eq(parameters.publishTestResults, 'true') }}: SYSTEM_ACCESSTOKEN: $(System.AccessToken) # TODO: remove NUGET_PACKAGES once https://github.com/dotnet/arcade/issues/1578 is fixed diff --git a/eng/pipelines/common/xplat-setup.yml b/eng/pipelines/common/xplat-setup.yml index b3620e27513d2..07589898b38dc 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: # Disable component governance in our CI builds. These builds are not shipping nor # are they a service. Also the component governance jobs issue lots of inconsequential diff --git a/eng/pipelines/coreclr/ci.yml b/eng/pipelines/coreclr/ci.yml index 0249dc33eba23..4982ffd0018bd 100644 --- a/eng/pipelines/coreclr/ci.yml +++ b/eng/pipelines/coreclr/ci.yml @@ -94,7 +94,7 @@ jobs: # - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-test-job.yml + jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml buildConfig: checked platforms: - Linux_arm @@ -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/runtimes/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/runtimes/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 4ea57cb95ba3d..07acd4100062a 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/runtimes/run-test-job.yml buildConfig: checked platforms: # TODO: add Windows_NT_arm64, when we have hardware available. 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 df6417a3c080a..c58f8f575f383 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/runtimes/run-test-job.yml buildConfig: checked platforms: # TODO: add Windows_NT_arm64, when we have hardware available. 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 a74c2ec080162..ce064af729f91 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/runtimes/run-test-job.yml buildConfig: checked platforms: # TODO: add Windows_NT_arm64, when we have hardware available. 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 c251b0236d3af..2f70f3f708303 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/runtimes/run-test-job.yml buildConfig: checked platforms: # TODO: add Windows_NT_arm64, when we have hardware available. 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..caf5444971ebb 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/runtimes/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..ab6ccdf94246b 100644 --- a/eng/pipelines/coreclr/crossgen2.yml +++ b/eng/pipelines/coreclr/crossgen2.yml @@ -29,7 +29,7 @@ jobs: - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-test-job.yml + jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml buildConfig: checked platforms: - OSX_x64 @@ -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/runtimes/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..d96ae6ef38b3f 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/runtimes/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..8c1241a1b371a 100644 --- a/eng/pipelines/coreclr/jitstress-isas-x86.yml +++ b/eng/pipelines/coreclr/jitstress-isas-x86.yml @@ -30,7 +30,7 @@ jobs: - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-test-job.yml + jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml buildConfig: checked platforms: - OSX_x64 @@ -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/runtimes/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..06c5d6fdc9114 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/runtimes/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/runtimes/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..9c0cf47dd7f73 100644 --- a/eng/pipelines/coreclr/templates/test-job.yml +++ b/eng/pipelines/coreclr/templates/test-job.yml @@ -27,7 +27,7 @@ parameters: jobs: - ${{ if and(ne(parameters.corefxTests, true), eq(parameters.osSubgroup, parameters.managedTestBuildOsSubgroup), eq(parameters.osGroup, parameters.managedTestBuildOsGroup)) }}: - - template: /eng/pipelines/coreclr/templates/build-test-job.yml + - template: /eng/pipelines/common/templates/runtimes/build-test-job.yml parameters: buildConfig: ${{ parameters.buildConfig }} liveLibrariesBuildConfig: ${{ parameters.liveLibrariesBuildConfig }} @@ -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/runtimes/run-test-job.yml parameters: buildConfig: ${{ parameters.buildConfig }} liveLibrariesBuildConfig: ${{ parameters.liveLibrariesBuildConfig }} diff --git a/eng/pipelines/mono/templates/xplat-job.yml b/eng/pipelines/mono/templates/xplat-job.yml index 2cd61dc7e7f3e..899f36ef85ad8 100644 --- a/eng/pipelines/mono/templates/xplat-job.yml +++ b/eng/pipelines/mono/templates/xplat-job.yml @@ -90,6 +90,12 @@ jobs: - name: osSubgroup value: ${{ parameters.osSubgroup }} + - name: coreClrRepoRoot + value: '$(Build.SourcesDirectory)/src/coreclr' + + - name: coreClrRepoRootDir + value: '$(coreClrRepoRoot)$(dir)' + - ${{ 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 d0f2fe0641310..9f2a2ed20f6dd 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -578,7 +578,7 @@ jobs: # - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-test-job.yml + jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml buildConfig: checked platforms: - Linux_arm @@ -599,7 +599,7 @@ jobs: # - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-test-job.yml + jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml buildConfig: checked platforms: - OSX_x64 @@ -620,7 +620,7 @@ jobs: # - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml buildConfig: checked platforms: - Linux_arm @@ -639,7 +639,7 @@ jobs: - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml buildConfig: checked platforms: - OSX_x64 @@ -656,6 +656,48 @@ jobs: eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), eq(variables['isFullMatrix'], 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: + - OSX_x64 + 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 CoreCLR runtime Test executions using live libraries +# Only when Mono is changed +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - OSX_x64 + 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 diff --git a/src/coreclr/build-test.sh b/src/coreclr/build-test.sh index cfaa95f298efe..c22c8ae949f79 100755 --- a/src/coreclr/build-test.sh +++ b/src/coreclr/build-test.sh @@ -6,9 +6,9 @@ build_test_wrappers() echo "${__MsgPrefix}Creating test wrappers..." if [[ $__Mono -eq 1 ]]; then - export RuntimeFlavor="mono" + __RuntimeFlavor="mono" else - export RuntimeFlavor="coreclr" + __RuntimeFlavor="coreclr" fi __Exclude="${__ProjectDir}/tests/issues.targets" @@ -32,7 +32,7 @@ build_test_wrappers() __MsbuildErr="/fileloggerparameters2:\"ErrorsOnly;LogFile=${__BuildErr}\"" __Logging="$__MsbuildLog $__MsbuildWrn $__MsbuildErr /consoleloggerparameters:$buildVerbosity" - nextCommand="\"${__DotNetCli}\" msbuild \"${__ProjectDir}/tests/src/runtest.proj\" /nodereuse:false /p:BuildWrappers=true /p:TestBuildMode=$__TestBuildMode /p:TargetsWindows=false $__Logging /p:TargetOS=$__TargetOS /p:Configuration=$__BuildType /p:TargetArchitecture=$__BuildArch" + nextCommand="\"${__DotNetCli}\" msbuild \"${__ProjectDir}/tests/src/runtest.proj\" /nodereuse:false /p:BuildWrappers=true /p:TestBuildMode=$__TestBuildMode /p:TargetsWindows=false $__Logging /p:TargetOS=$__TargetOS /p:Configuration=$__BuildType /p:TargetArchitecture=$__BuildArch /p:RuntimeFlavor=$__RuntimeFlavor \"/bl:${__RepoRootDir}/artifacts/log/${__BuildType}/build_test_wrappers_${__RuntimeFlavor}.binlog\"" eval $nextCommand local exitCode="$?" diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index dcf41938ca9ff..c4606f3b4f11b 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -175,6 +175,7 @@ false false false + $(RuntimeFlavorDisplayName) R2R R2R-CG2 $(TestRunNamePrefix)$(TargetOS) $(TargetArchitecture) $(Configuration) @ diff --git a/src/coreclr/tests/issues.targets b/src/coreclr/tests/issues.targets index 980cb8feee8cd..5b878ef367b2e 100644 --- a/src/coreclr/tests/issues.targets +++ b/src/coreclr/tests/issues.targets @@ -122,6 +122,9 @@ Unix does not support tailcall helper + + Unix does not support tailcall helper + @@ -129,9 +132,6 @@ https://github.com/dotnet/runtime/issues/12166 - - Unix does not support tailcall helper -