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 4467951602b7e..dcecb3ee5208f 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 9a7b6d8ef5ea4..3863f8d26c653 100644
--- a/eng/pipelines/runtime.yml
+++ b/eng/pipelines/runtime.yml
@@ -573,7 +573,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
@@ -594,7 +594,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
@@ -615,7 +615,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
@@ -634,7 +634,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
@@ -651,6 +651,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 2a2f6dc840cdb..e460b7424aeb2 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
-