diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index a70bddb5ebe381..ec9168a7cffca9 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -15,7 +15,7 @@
]
},
"microsoft.dotnet.xharness.cli": {
- "version": "6.0.0-prerelease.24208.3",
+ "version": "6.0.0-prerelease.24224.2",
"commands": [
"xharness"
]
diff --git a/NuGet.config b/NuGet.config
index dfc9b0309dda88..7a7c2d23d9bdea 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -9,6 +9,8 @@
+
+
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index b1a340cd9dfbdb..96d71f76b4bd55 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -1,8 +1,8 @@
-
+
https://github.com/dotnet/icu
- f2734cffa9b7f1270de7cc701e76b9a8eb938a19
+ def3524876b6b84a72e8ed02db6077f9c0ce8a75
https://github.com/dotnet/msquic
@@ -102,49 +102,49 @@
https://github.com/microsoft/vstest
140434f7109d357d0158ade9e5164a4861513965
-
+
https://github.com/dotnet/runtime-assets
- 3b33dc5e6c1ab334ee4ca9f76ccae84ade59a12a
+ 600fbf042f688f9db813f69bd8a6525b84efb7e6
-
+
https://github.com/dotnet/runtime-assets
- 3b33dc5e6c1ab334ee4ca9f76ccae84ade59a12a
+ 600fbf042f688f9db813f69bd8a6525b84efb7e6
-
+
https://github.com/dotnet/runtime-assets
- 3b33dc5e6c1ab334ee4ca9f76ccae84ade59a12a
+ 600fbf042f688f9db813f69bd8a6525b84efb7e6
-
+
https://github.com/dotnet/runtime-assets
- 3b33dc5e6c1ab334ee4ca9f76ccae84ade59a12a
+ 600fbf042f688f9db813f69bd8a6525b84efb7e6
-
+
https://github.com/dotnet/runtime-assets
- 3b33dc5e6c1ab334ee4ca9f76ccae84ade59a12a
+ 600fbf042f688f9db813f69bd8a6525b84efb7e6
-
+
https://github.com/dotnet/runtime-assets
- 3b33dc5e6c1ab334ee4ca9f76ccae84ade59a12a
+ 600fbf042f688f9db813f69bd8a6525b84efb7e6
-
+
https://github.com/dotnet/runtime-assets
- 3b33dc5e6c1ab334ee4ca9f76ccae84ade59a12a
+ 600fbf042f688f9db813f69bd8a6525b84efb7e6
-
+
https://github.com/dotnet/runtime-assets
- 3b33dc5e6c1ab334ee4ca9f76ccae84ade59a12a
+ 600fbf042f688f9db813f69bd8a6525b84efb7e6
-
+
https://github.com/dotnet/runtime-assets
- 3b33dc5e6c1ab334ee4ca9f76ccae84ade59a12a
+ 600fbf042f688f9db813f69bd8a6525b84efb7e6
-
+
https://github.com/dotnet/runtime-assets
- 3b33dc5e6c1ab334ee4ca9f76ccae84ade59a12a
+ 600fbf042f688f9db813f69bd8a6525b84efb7e6
-
+
https://github.com/dotnet/runtime-assets
- 3b33dc5e6c1ab334ee4ca9f76ccae84ade59a12a
+ 600fbf042f688f9db813f69bd8a6525b84efb7e6
https://github.com/dotnet/llvm-project
@@ -214,13 +214,13 @@
https://github.com/mono/linker
c8499798a2a09639174e2f5c694d6652794cc73d
-
+
https://github.com/dotnet/xharness
- b107ade008f89b2e4e7ce73ee92b6ba193bb623a
+ d1dd9c2ce3fc0b9358d2cda64c52d052d1a612c1
-
+
https://github.com/dotnet/xharness
- b107ade008f89b2e4e7ce73ee92b6ba193bb623a
+ d1dd9c2ce3fc0b9358d2cda64c52d052d1a612c1
https://github.com/dotnet/arcade
@@ -242,13 +242,13 @@
https://dev.azure.com/dnceng/internal/_git/dotnet-optimization
d50065944d8b41d804448a7056351481d583ad3d
-
+
https://github.com/dotnet/hotreload-utils
- b11d2b601cd75038e3f587650f75286f0a0b6902
+ 6f095cd6901ed48a469289f7f4f91d30a420d1ad
-
+
https://github.com/dotnet/runtime-assets
- 3b33dc5e6c1ab334ee4ca9f76ccae84ade59a12a
+ 600fbf042f688f9db813f69bd8a6525b84efb7e6
https://github.com/dotnet/roslyn-analyzers
diff --git a/eng/Versions.props b/eng/Versions.props
index 9120b6efbd183f..b34311e31e6af5 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -108,25 +108,25 @@
4.5.0
6.0.0-rc.1.21415.6
- 6.0.0-beta.24211.3
- 6.0.0-beta.24211.3
- 6.0.0-beta.24211.3
- 6.0.0-beta.24211.3
- 6.0.0-beta.24211.3
- 6.0.0-beta.24211.3
- 6.0.0-beta.24211.3
- 6.0.0-beta.24211.3
- 6.0.0-beta.24211.3
- 6.0.0-beta.24211.3
- 6.0.0-beta.24211.3
- 6.0.0-beta.24211.3
+ 6.0.0-beta.24271.2
+ 6.0.0-beta.24271.2
+ 6.0.0-beta.24271.2
+ 6.0.0-beta.24271.2
+ 6.0.0-beta.24271.2
+ 6.0.0-beta.24271.2
+ 6.0.0-beta.24271.2
+ 6.0.0-beta.24271.2
+ 6.0.0-beta.24271.2
+ 6.0.0-beta.24271.2
+ 6.0.0-beta.24271.2
+ 6.0.0-beta.24271.2
1.0.0-prerelease.21416.5
1.0.0-prerelease.21416.5
1.0.0-prerelease.21416.5
1.0.0-prerelease.21416.5
- 16.11.29-beta1.23404.4
+ 17.10.0-beta1.24272.1
2.0.0-beta1.20253.1
2.0.65
2.2.0
@@ -143,9 +143,9 @@
1.0.1-prerelease-00006
17.4.0-preview-20220707-01
- 6.0.0-prerelease.24208.3
- 6.0.0-prerelease.24208.3
- 6.0.0-alpha.0.23367.3
+ 6.0.0-prerelease.24224.2
+ 6.0.0-prerelease.24224.2
+ 6.0.0-alpha.0.24271.2
2.4.2-pre.9
2.4.2
1.3.0
@@ -162,7 +162,7 @@
6.0.100-1.21459.1
$(MicrosoftNETILLinkTasksVersion)
- 6.0.0-rtm.24211.1
+ 6.0.0-rtm.24269.3
6.0.0-servicing.22205.1
diff --git a/eng/native/configurecompiler.cmake b/eng/native/configurecompiler.cmake
index 1a43b710c618b6..88b3cd93745ca7 100644
--- a/eng/native/configurecompiler.cmake
+++ b/eng/native/configurecompiler.cmake
@@ -376,6 +376,9 @@ if (CLR_CMAKE_HOST_UNIX)
add_compile_options(-Wno-single-bit-bitfield-constant-conversion)
add_compile_options(-Wno-cast-function-type-strict)
add_compile_options(-Wno-incompatible-function-pointer-types-strict)
+
+ # clang 18.1 supressions
+ add_compile_options(-Wno-switch-default)
else()
add_compile_options(-Wno-unknown-pragmas)
add_compile_options(-Wno-uninitialized)
diff --git a/eng/native/init-compiler.sh b/eng/native/init-compiler.sh
index e215bd75ff158e..04761fe1b482f9 100755
--- a/eng/native/init-compiler.sh
+++ b/eng/native/init-compiler.sh
@@ -46,7 +46,7 @@ if [[ -z "$CLR_CC" ]]; then
# Set default versions
if [[ -z "$majorVersion" ]]; then
# note: gcc (all versions) and clang versions higher than 6 do not have minor version in file name, if it is zero.
- if [[ "$compiler" == "clang" ]]; then versions=( 16 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5 )
+ if [[ "$compiler" == "clang" ]]; then versions=( 18 17 16 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5 )
elif [[ "$compiler" == "gcc" ]]; then versions=( 12 11 10 9 8 7 6 5 4.9 ); fi
for version in "${versions[@]}"; do
diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml
index 114288387a3cdb..5f2dc62fee36ee 100644
--- a/eng/pipelines/common/global-build-job.yml
+++ b/eng/pipelines/common/global-build-job.yml
@@ -14,7 +14,6 @@ parameters:
dependsOn: []
pool: ''
platform: ''
- pgoType: ''
condition: true
useContinueOnErrorDuringBuild: false
shouldContinueOnError: false
@@ -26,8 +25,7 @@ parameters:
helixQueues: ''
enablePublishTestResults: false
testResultsFormat: ''
- extraStepsTemplate: ''
- extraStepsParameters: {}
+ postBuildSteps: []
enableRichCodeNavigation: false
richCodeNavigationLanguage: 'csharp'
richCodeNavigationEnvironment: 'production'
@@ -173,11 +171,12 @@ jobs:
displayName: Install native dependencies
# Build
- - ${{ if eq(parameters.buildingOnSourceBuildImage, false) }}:
- - script: $(_sclEnableCommand) $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci -arch ${{ parameters.archType }} $(_osParameter) ${{ parameters.buildArgs }} $(_officialBuildParameter) $(_crossBuildPropertyArg) $(_cxx11Parameter) $(_richCodeNavigationParam) $(_buildDarwinFrameworksParameter)
- displayName: Build product
- ${{ if eq(parameters.useContinueOnErrorDuringBuild, true) }}:
- continueOnError: ${{ parameters.shouldContinueOnError }}
+ - template: /eng/pipelines/common/templates/global-build-step.yml
+ parameters:
+ buildArgs: ${{ parameters.buildArgs }}
+ useContinueOnErrorDuringBuild: ${{ parameters.useContinueOnErrorDuringBuild }}
+ shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
+ archType: ${{ parameters.archType }}
- ${{ if in(parameters.osGroup, 'OSX', 'iOS', 'tvOS', 'Android') }}:
- script: |
@@ -187,22 +186,29 @@ jobs:
condition: always()
# If intended to send extra steps after regular build add them here.
- - ${{ if ne(parameters.extraStepsTemplate, '') }}:
- - template: ${{ parameters.extraStepsTemplate }}
- parameters:
- osGroup: ${{ parameters.osGroup }}
- osSubgroup: ${{ parameters.osSubgroup }}
- archType: ${{ parameters.archType }}
- buildConfig: ${{ parameters.buildConfig }}
- runtimeFlavor: ${{ parameters.runtimeFlavor }}
- runtimeVariant: ${{ parameters.runtimeVariant }}
- helixQueues: ${{ parameters.helixQueues }}
- targetRid: ${{ parameters.targetRid }}
- nameSuffix: ${{ parameters.nameSuffix }}
- platform: ${{ parameters.platform }}
- pgoType: ${{ parameters.pgoType }}
- shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
- ${{ insert }}: ${{ parameters.extraStepsParameters }}
+ - ${{ if ne(parameters.postBuildSteps,'') }}:
+ - ${{ each postBuildStep in parameters.postBuildSteps }}:
+ - ${{ if ne(postBuildStep.template, '') }}:
+ - template: ${{ postBuildStep.template }}
+ parameters:
+ osGroup: ${{ parameters.osGroup }}
+ osSubgroup: ${{ parameters.osSubgroup }}
+ archType: ${{ parameters.archType }}
+ buildConfig: ${{ parameters.buildConfig }}
+ runtimeFlavor: ${{ parameters.runtimeFlavor }}
+ runtimeVariant: ${{ parameters.runtimeVariant }}
+ helixQueues: ${{ parameters.helixQueues }}
+ targetRid: ${{ parameters.targetRid }}
+ nameSuffix: ${{ parameters.nameSuffix }}
+ platform: ${{ parameters.platform }}
+ shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
+ ${{ if ne(postBuildStep.forwardedParameters, '') }}:
+ ${{ each parameter in postBuildStep.forwardedParameters }}:
+ ${{ parameter }}: ${{ parameters[parameter] }}
+ ${{ if ne(postBuildStep.parameters, '') }}:
+ ${{ insert }}: ${{ postBuildStep.parameters }}
+ - ${{ else }}:
+ - ${{ postBuildStep }}
- task: PublishBuildArtifacts@1
displayName: Publish Logs
diff --git a/eng/pipelines/common/templates/global-build-step.yml b/eng/pipelines/common/templates/global-build-step.yml
new file mode 100644
index 00000000000000..59fde17fb5a060
--- /dev/null
+++ b/eng/pipelines/common/templates/global-build-step.yml
@@ -0,0 +1,12 @@
+parameters:
+ buildArgs: ''
+ useContinueOnErrorDuringBuild: false
+ shouldContinueOnError: false
+ archType: ''
+ displayName: Build product
+
+steps:
+ - script: $(_sclEnableCommand) $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci -arch ${{ parameters.archType }} $(_osParameter) ${{ parameters.buildArgs }} $(_officialBuildParameter) $(_crossBuildPropertyArg) $(_cxx11Parameter) $(_richCodeNavigationParam) $(_buildDarwinFrameworksParameter)
+ displayName: ${{ parameters.displayName }}
+ ${{ if eq(parameters.useContinueOnErrorDuringBuild, true) }}:
+ continueOnError: ${{ parameters.shouldContinueOnError }}
diff --git a/eng/pipelines/common/templates/runtimes/build-test-job.yml b/eng/pipelines/common/templates/runtimes/build-test-job.yml
index b7bf00e36923c5..b04cc92688c17f 100644
--- a/eng/pipelines/common/templates/runtimes/build-test-job.yml
+++ b/eng/pipelines/common/templates/runtimes/build-test-job.yml
@@ -23,7 +23,6 @@ parameters:
runtimeVariant: ''
dependsOn: []
dependOnEvaluatePaths: false
- pgoType: ''
### Build managed test components (native components are getting built as part
### of the the product build job).
diff --git a/eng/pipelines/common/templates/runtimes/xplat-job.yml b/eng/pipelines/common/templates/runtimes/xplat-job.yml
index 6e5d208f37937b..c3f67f2cd515fb 100644
--- a/eng/pipelines/common/templates/runtimes/xplat-job.yml
+++ b/eng/pipelines/common/templates/runtimes/xplat-job.yml
@@ -74,15 +74,6 @@ jobs:
- name: buildConfig
value: ${{ parameters.buildConfig }}
- - name: archType
- value: ${{ parameters.archType }}
-
- - name: osGroup
- value: ${{ parameters.osGroup }}
-
- - name: osSubgroup
- value: ${{ parameters.osSubgroup }}
-
- ${{ 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/common/xplat-setup.yml b/eng/pipelines/common/xplat-setup.yml
index 58338384ec8496..019df96eea5dcd 100644
--- a/eng/pipelines/common/xplat-setup.yml
+++ b/eng/pipelines/common/xplat-setup.yml
@@ -48,6 +48,15 @@ jobs:
- name: _BuildConfig
value: $(buildConfigUpper)
+ - name: archType
+ value: ${{ parameters.archType }}
+
+ - name: osGroup
+ value: ${{ parameters.osGroup }}
+
+ - name: osSubgroup
+ value: ${{ parameters.osSubgroup }}
+
- ${{ if or(eq(parameters.osGroup, 'windows'), eq(parameters.hostedOs, 'windows')) }}:
- name: archiveExtension
value: '.zip'
diff --git a/eng/pipelines/coreclr/perf.yml b/eng/pipelines/coreclr/perf.yml
index 68fc96f693e7c0..02a3057996fa45 100644
--- a/eng/pipelines/coreclr/perf.yml
+++ b/eng/pipelines/coreclr/perf.yml
@@ -65,14 +65,15 @@ jobs:
buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
nameSuffix: wasm
isOfficialBuild: false
- extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml
- extraStepsParameters:
- rootFolder: '$(Build.SourcesDirectory)/artifacts/'
- includeRootFolder: true
- displayName: Browser Wasm Artifacts
- artifactName: BrowserWasm
- archiveType: zip
- archiveExtension: .zip
+ postBuildSteps:
+ - template: /eng/pipelines/common/upload-artifact-step.yml
+ parameters:
+ rootFolder: '$(Build.SourcesDirectory)/artifacts/'
+ includeRootFolder: true
+ displayName: Browser Wasm Artifacts
+ artifactName: BrowserWasm
+ archiveType: zip
+ archiveExtension: .zip
#run mono wasm microbenchmarks perf job
- template: /eng/pipelines/common/platform-matrix.yml
@@ -139,14 +140,15 @@ jobs:
buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
nameSuffix: wasm
isOfficialBuild: false
- extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml
- extraStepsParameters:
- rootFolder: '$(Build.SourcesDirectory)/artifacts/'
- includeRootFolder: true
- displayName: Browser Wasm Artifacts
- artifactName: BrowserWasm
- archiveType: zip
- archiveExtension: .zip
+ postBuildSteps:
+ - template: /eng/pipelines/common/upload-artifact-step.yml
+ parameters:
+ rootFolder: '$(Build.SourcesDirectory)/artifacts/'
+ includeRootFolder: true
+ displayName: Browser Wasm Artifacts
+ artifactName: BrowserWasm
+ archiveType: zip
+ archiveExtension: .zip
# build mono for AOT
- template: /eng/pipelines/common/platform-matrix.yml
@@ -160,15 +162,16 @@ jobs:
buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
nameSuffix: AOT
isOfficialBuild: false
- extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml
- extraStepsParameters:
- rootFolder: '$(Build.SourcesDirectory)/artifacts/'
- includeRootFolder: true
- displayName: AOT Mono Artifacts
- artifactName: LinuxMonoAOTx64
- archiveExtension: '.tar.gz'
- archiveType: tar
- tarCompression: gz
+ postBuildSteps:
+ - template: /eng/pipelines/common/upload-artifact-step.yml
+ parameters:
+ rootFolder: '$(Build.SourcesDirectory)/artifacts/'
+ includeRootFolder: true
+ displayName: AOT Mono Artifacts
+ artifactName: LinuxMonoAOTx64
+ archiveExtension: '.tar.gz'
+ archiveType: tar
+ tarCompression: gz
# build mono Android scenarios
- template: /eng/pipelines/common/platform-matrix.yml
@@ -182,15 +185,16 @@ jobs:
buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
nameSuffix: AndroidMono
isOfficialBuild: false
- extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml
- extraStepsParameters:
- rootFolder: '$(Build.SourcesDirectory)/artifacts/'
- includeRootFolder: true
- displayName: Android Mono Artifacts
- artifactName: AndroidMonoarm64
- archiveExtension: '.tar.gz'
- archiveType: tar
- tarCompression: gz
+ postBuildSteps:
+ - template: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml
+ parameters:
+ rootFolder: '$(Build.SourcesDirectory)/artifacts/'
+ includeRootFolder: true
+ displayName: Android Mono Artifacts
+ artifactName: AndroidMonoarm64
+ archiveExtension: '.tar.gz'
+ archiveType: tar
+ tarCompression: gz
# build mono iOS scenarios
- template: /eng/pipelines/common/platform-matrix.yml
@@ -204,15 +208,16 @@ jobs:
buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
nameSuffix: iOSMono
isOfficialBuild: false
- extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml
- extraStepsParameters:
- rootFolder: '$(Build.SourcesDirectory)/artifacts/'
- includeRootFolder: true
- displayName: iOS Mono Artifacts
- artifactName: iOSMonoarm64
- archiveExtension: '.tar.gz'
- archiveType: tar
- tarCompression: gz
+ postBuildSteps:
+ - template: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml
+ parameters:
+ rootFolder: '$(Build.SourcesDirectory)/artifacts/'
+ includeRootFolder: true
+ displayName: iOS Mono Artifacts
+ artifactName: iOSMonoarm64
+ archiveExtension: '.tar.gz'
+ archiveType: tar
+ tarCompression: gz
# build mono
- template: /eng/pipelines/common/platform-matrix.yml
diff --git a/eng/pipelines/coreclr/perf_slow.yml b/eng/pipelines/coreclr/perf_slow.yml
index eae5255cfed4a3..ab85e0a2458cdc 100644
--- a/eng/pipelines/coreclr/perf_slow.yml
+++ b/eng/pipelines/coreclr/perf_slow.yml
@@ -64,14 +64,15 @@ jobs:
buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
nameSuffix: wasm
isOfficialBuild: false
- extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml
- extraStepsParameters:
- rootFolder: '$(Build.SourcesDirectory)/artifacts/'
- includeRootFolder: true
- displayName: Browser Wasm Artifacts
- artifactName: BrowserWasm
- archiveType: zip
- archiveExtension: .zip
+ postBuildSteps:
+ - template: /eng/pipelines/common/upload-artifact-step.yml
+ parameters:
+ rootFolder: '$(Build.SourcesDirectory)/artifacts/'
+ includeRootFolder: true
+ displayName: Browser Wasm Artifacts
+ artifactName: BrowserWasm
+ archiveType: zip
+ archiveExtension: .zip
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'Schedule')) }}:
@@ -98,14 +99,15 @@ jobs:
buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
nameSuffix: wasm
isOfficialBuild: false
- extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml
- extraStepsParameters:
- rootFolder: '$(Build.SourcesDirectory)/artifacts/'
- includeRootFolder: true
- displayName: Browser Wasm Artifacts
- artifactName: BrowserWasm
- archiveType: zip
- archiveExtension: .zip
+ postBuildSteps:
+ - template: /eng/pipelines/common/upload-artifact-step.yml
+ parameters:
+ rootFolder: '$(Build.SourcesDirectory)/artifacts/'
+ includeRootFolder: true
+ displayName: Browser Wasm Artifacts
+ artifactName: BrowserWasm
+ archiveType: zip
+ archiveExtension: .zip
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
@@ -118,15 +120,16 @@ jobs:
buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
nameSuffix: AOT
isOfficialBuild: false
- extraStepsTemplate: /eng/pipelines/common/upload-artifact-step.yml
- extraStepsParameters:
- rootFolder: '$(Build.SourcesDirectory)/artifacts/'
- includeRootFolder: true
- displayName: AOT Mono Artifacts
- artifactName: LinuxMonoAOTarm64
- archiveExtension: '.tar.gz'
- archiveType: tar
- tarCompression: gz
+ postBuildSteps:
+ - template: /eng/pipelines/common/upload-artifact-step.yml
+ parameters:
+ rootFolder: '$(Build.SourcesDirectory)/artifacts/'
+ includeRootFolder: true
+ displayName: AOT Mono Artifacts
+ artifactName: LinuxMonoAOTarm64
+ archiveExtension: '.tar.gz'
+ archiveType: tar
+ tarCompression: gz
# run mono aot microbenchmarks perf job
- template: /eng/pipelines/common/platform-matrix.yml
diff --git a/eng/pipelines/coreclr/templates/build-job.yml b/eng/pipelines/coreclr/templates/build-job.yml
index f283d6216824e0..2ee72bec5a4df1 100644
--- a/eng/pipelines/coreclr/templates/build-job.yml
+++ b/eng/pipelines/coreclr/templates/build-job.yml
@@ -20,7 +20,6 @@ parameters:
testGroup: ''
timeoutInMinutes: ''
variables: {}
- pgoType: ''
### Product build
jobs:
@@ -38,25 +37,22 @@ jobs:
pool: ${{ parameters.pool }}
condition: ${{ parameters.condition }}
dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
- pgoType: ${{ parameters.pgoType }}
# Compute job name from template parameters
${{ if and(ne(parameters.testGroup, 'clrTools'), eq(parameters.compilerName, 'gcc')) }}:
name: ${{ format('coreclr_{0}_product_build_{1}{1}_{3}_{4}', parameters.compilerName, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
displayName: ${{ format('CoreCLR GCC Product Build {0}{1} {2} {3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
${{ if and(ne(parameters.testGroup, 'clrTools'), ne(parameters.compilerName, 'gcc')) }}:
- name: ${{ format('coreclr_{0}_product_build_{1}{2}_{3}_{4}{5}',
+ name: ${{ format('coreclr_{0}_product_build_{1}{2}_{3}_{4}',
parameters.runtimeVariant,
parameters.osGroup,
parameters.osSubgroup,
parameters.archType,
- parameters.buildConfig,
- parameters.pgoType) }}
- displayName: ${{ format('CoreCLR {0} Product Build {1}{2} {3} {4} {5}',
+ parameters.buildConfig) }}
+ displayName: ${{ format('CoreCLR {0} Product Build {1}{2} {3} {4}',
parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup,
parameters.archType,
- parameters.buildConfig,
- parameters.pgoType) }}
+ parameters.buildConfig) }}
${{ if eq(parameters.testGroup, 'clrTools') }}:
name: ${{ format('coreclr_{0}_tools_unittests_{1}{2}_{3}_{4}', parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
displayName: ${{ format('CoreCLR {0} Tools Unit Tests {1}{2} {3} {4}', parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
@@ -118,7 +114,7 @@ jobs:
- name: enforcePgoArg
value: ''
# The EnforcePGO script is only supported on Windows and is not supported on arm or arm64.
- - ${{ if and(eq(parameters.buildConfig, 'Release'), and(eq(parameters.osGroup, 'windows'), not(or(eq(parameters.archType, 'arm64'), eq(parameters.archType, 'arm')))), ne(parameters.pgoType, 'pgo')) }}:
+ - ${{ if and(eq(parameters.buildConfig, 'Release'), and(eq(parameters.osGroup, 'windows'), not(or(eq(parameters.archType, 'arm64'), eq(parameters.archType, 'arm'))))) }}:
- name: enforcePgoArg
value: '-enforcepgo'
@@ -134,12 +130,6 @@ jobs:
- name: clrBuildPALTestsBuildArg
value: '-component runtime -component alljits -component paltests '
- - name: pgoInstrumentArg
- value: ''
- - ${{ if eq(parameters.pgoType, 'PGO' )}}:
- - name: pgoInstrumentArg
- value: '-pgoinstrument '
-
- name: SignType
value: $[ coalesce(variables.OfficialSignType, 'real') ]
@@ -208,10 +198,10 @@ jobs:
# Build CoreCLR Runtime
- ${{ if ne(parameters.osGroup, 'windows') }}:
- - script: $(Build.SourcesDirectory)/src/coreclr/build-runtime$(scriptExt) $(buildConfig) $(archType) $(crossArg) $(osArg) -ci $(compilerArg) $(clrBuildPALTestsBuildArg) $(pgoInstrumentArg) $(officialBuildIdArg) $(clrInterpreterBuildArg)
+ - script: $(Build.SourcesDirectory)/src/coreclr/build-runtime$(scriptExt) $(buildConfig) $(archType) $(crossArg) $(osArg) -ci $(compilerArg) $(clrBuildPALTestsBuildArg) $(officialBuildIdArg) $(clrInterpreterBuildArg)
displayName: Build CoreCLR Runtime
- ${{ if eq(parameters.osGroup, 'windows') }}:
- - script: set __TestIntermediateDir=int&&$(Build.SourcesDirectory)/src/coreclr/build-runtime$(scriptExt) $(buildConfig) $(archType) -ci $(enforcePgoArg) $(pgoInstrumentArg) $(officialBuildIdArg) $(clrInterpreterBuildArg)
+ - script: set __TestIntermediateDir=int&&$(Build.SourcesDirectory)/src/coreclr/build-runtime$(scriptExt) $(buildConfig) $(archType) -ci $(enforcePgoArg) $(officialBuildIdArg) $(clrInterpreterBuildArg)
displayName: Build CoreCLR Runtime
- ${{ if in(parameters.osGroup, 'OSX', 'iOS', 'tvOS') }}:
@@ -221,7 +211,7 @@ jobs:
displayName: Disk Usage after Build
# Build CoreCLR Managed Components
- - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -subset clr.corelib+clr.nativecorelib+clr.tools+clr.packages+clr.paltestlist $(crossArg) -arch $(archType) $(osArg) -c $(buildConfig) $(pgoInstrumentArg) $(officialBuildIdArg) -ci
+ - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -subset clr.corelib+clr.nativecorelib+clr.tools+clr.packages+clr.paltestlist $(crossArg) -arch $(archType) $(osArg) -c $(buildConfig) $(officialBuildIdArg) -ci
displayName: Build managed product components and packages
# Run CoreCLR Tools unit tests
@@ -277,17 +267,9 @@ jobs:
artifactName: $(buildProductArtifactName)
displayName: 'product build'
- - ${{ if and(in(parameters.osGroup, 'windows', 'Linux'), ne(parameters.archType, 'x86'), ne(parameters.compilerName, 'gcc'), ne(parameters.testGroup, 'clrTools'), eq(parameters.pgoType, '')) }}:
- - template: /eng/pipelines/coreclr/templates/crossdac-build.yml
- parameters:
- archType: ${{ parameters.archType }}
- osGroup: ${{ parameters.osGroup }}
- osSubgroup: ${{ parameters.osSubgroup }}
- isOfficialBuild: ${{ parameters.isOfficialBuild }}
-
- ${{ if and(ne(parameters.compilerName, 'gcc'), ne(parameters.testGroup, ''), ne(parameters.testGroup, 'clrTools')) }}:
# Publish test native components for consumption by test execution.
- - ${{ if and(ne(parameters.isOfficialBuild, true), eq(parameters.pgoType, '')) }}:
+ - ${{ if ne(parameters.isOfficialBuild, true) }}:
- template: /eng/pipelines/common/upload-artifact-step.yml
parameters:
rootFolder: $(nativeTestArtifactRootFolderPath)
@@ -307,7 +289,7 @@ jobs:
SecretsFilter: 'dotnetfeed-storage-access-key-1,microsoft-symbol-server-pat,symweb-symbol-server-pat'
# Save packages using the prepare-signed-artifacts format.
- - ${{ if and(eq(parameters.isOfficialBuild, true), ne(parameters.testGroup, 'clrTools'), eq(parameters.pgoType, '')) }}:
+ - ${{ if and(eq(parameters.isOfficialBuild, true), ne(parameters.testGroup, 'clrTools')) }}:
- template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
parameters:
name: ${{ parameters.platform }}
@@ -328,6 +310,6 @@ jobs:
displayName: Publish Logs
inputs:
targetPath: $(Build.SourcesDirectory)/artifacts/log
- artifactName: '$(publishLogsArtifactPrefix)${{ parameters.pgoType }}_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
+ artifactName: '$(publishLogsArtifactPrefix)_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
continueOnError: true
condition: always()
diff --git a/eng/pipelines/coreclr/templates/crossdac-build.yml b/eng/pipelines/coreclr/templates/crossdac-build.yml
deleted file mode 100644
index 98cc123878ebb9..00000000000000
--- a/eng/pipelines/coreclr/templates/crossdac-build.yml
+++ /dev/null
@@ -1,54 +0,0 @@
-parameters:
- archType: ''
- osGroup: ''
- osSubgroup: ''
- isOfficialBuild: false
-
-steps:
- # Always build the crossdac, that way we know in CI/PR if things break to build.
- - ${{ if and(eq(parameters.osGroup, 'windows'), notin(parameters.archType, 'x86')) }}:
- - script: set __TestIntermediateDir=int&&$(Build.SourcesDirectory)/src/coreclr/build-runtime$(scriptExt) $(buildConfig) $(archType) -ci -linuxdac -ninja $(officialBuildIdArg)
- displayName: Build Cross OS Linux DAC for Windows
-
- - script: set __TestIntermediateDir=int&&$(Build.SourcesDirectory)/src/coreclr/build-runtime$(scriptExt) $(buildConfig) $(archType) -ci -alpinedac -ninja $(officialBuildIdArg)
- displayName: Build Cross OS Linux-musl DAC for Windows
-
- - task: CopyFiles@2
- displayName: Gather CrossDac Artifacts (Linux)
- inputs:
- SourceFolder: $(buildLinuxDacRootFolderPath)
- Contents: |
- **/*
- !**/sharedFramework/**/*
- TargetFolder: $(buildLinuxDacStagingPath)
-
- - task: CopyFiles@2
- displayName: Gather CrossDac Artifacts (Linux_musl)
- inputs:
- SourceFolder: $(buildMuslDacRootFolderPath)
- Contents: |
- **/*
- !**/sharedFramework/**/*
- TargetFolder: '$(buildMuslDacStagingPath)'
-
- - template: /eng/pipelines/coreclr/templates/sign-diagnostic-files.yml
- parameters:
- basePath: $(crossDacArtifactPath)
- isOfficialBuild: ${{ parameters.isOfficialBuild }}
- timeoutInMinutes: 30
-
- - ${{ if eq(parameters.osGroup, 'Linux') }}:
- - task: CopyFiles@2
- displayName: Gather runtime for CrossDac
- inputs:
- SourceFolder: $(coreClrProductRootFolderPath)
- Contents: libcoreclr.so
- TargetFolder: '$(crossDacArtifactPath)/${{ parameters.osGroup }}${{ parameters.osSubgroup }}.$(archType).$(buildConfigUpper)/$(crossDacHostArch)'
-
- # Make the assets available in a single container for the packaging job.
- - task: PublishBuildArtifacts@1
- displayName: Publish runtime for CrossDac
- inputs:
- pathtoPublish: $(crossDacArtifactPath)
- PublishLocation: Container
- artifactName: $(buildCrossDacArtifactName)
diff --git a/eng/pipelines/coreclr/templates/crossdac-hostarch.yml b/eng/pipelines/coreclr/templates/crossdac-hostarch.yml
new file mode 100644
index 00000000000000..da97f322a80b3d
--- /dev/null
+++ b/eng/pipelines/coreclr/templates/crossdac-hostarch.yml
@@ -0,0 +1,9 @@
+parameters:
+ archType: ''
+
+variables:
+ - name: crossDacHostArch
+ value: x64
+ - ${{ if eq(parameters.archType, 'arm') }}:
+ - name: crossDacHostArch
+ value: x86
diff --git a/eng/pipelines/coreclr/templates/crossdac-pack.yml b/eng/pipelines/coreclr/templates/crossdac-pack.yml
deleted file mode 100644
index fc3ef404c171a9..00000000000000
--- a/eng/pipelines/coreclr/templates/crossdac-pack.yml
+++ /dev/null
@@ -1,79 +0,0 @@
-parameters:
- archType: ''
- buildConfig: ''
- container: ''
- crossDacPlatforms: {}
- dependOnEvaluatePaths: false
- isOfficialBuild: false
- osGroup: ''
- osSubgroup: ''
- platform: ''
- pool: ''
- runtimeVariant: ''
- stagedBuild: false
- testGroup: ''
- timeoutInMinutes: ''
- variables: {}
-
-jobs:
-- template: xplat-pipeline-job.yml
- parameters:
- archType: ${{ parameters.archType }}
- buildConfig: ${{ parameters.buildConfig }}
- container: ${{ parameters.container }}
- condition: ${{ parameters.isOfficialBuild }}
- helixType: 'build/product/'
- osGroup: ${{ parameters.osGroup }}
- osSubgroup: ${{ parameters.osSubgroup }}
- pool: ${{ parameters.pool }}
- runtimeVariant: ${{ parameters.runtimeVariant }}
- stagedBuild: ${{ parameters.stagedBuild }}
- timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
- dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
-
- name: crossdacpack
- displayName: CrossDac Packaging
-
- variables:
- - name: officialBuildIdArg
- value: ''
- - name: crossDacArgs
- value: ''
- - ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}:
- - name: officialBuildIdArg
- value: '/p:OfficialBuildId=$(Build.BuildNumber)'
- - name: crossDacArgs
- value: '/p:CrossDacArtifactsDir=$(crossDacArtifactPath)/$(buildCrossDacArtifactName)'
- - name: SignType
- value: $[ coalesce(variables.OfficialSignType, 'real') ]
- - ${{ parameters.variables }}
-
- dependsOn:
- - ${{ if ne(parameters.crossDacPlatforms, '') }}:
- - ${{ each platform in parameters.crossDacPlatforms }}:
- - ${{ parameters.runtimeFlavor }}_${{ parameters.runtimeVariant }}_product_build_${{ platform }}_${{ parameters.buildConfig }}
-
- steps:
- - task: DownloadBuildArtifacts@0
- displayName: Download CrossDac artifacts
- inputs:
- artifactName: $(buildCrossDacArtifactName)
- downloadPath: $(crossDacArtifactPath)
- checkDownloadedFiles: true
-
- - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -subset crossdacpack -arch $(archType) $(osArg) -c $(buildConfig) $(officialBuildIdArg) $(crossDacArgs) -ci
- displayName: Build crossdac packaging
-
- # Save packages using the prepare-signed-artifacts format.
- - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
- parameters:
- name: ${{ parameters.platform }}
-
- # Upload to artifacts to be signed
- - task: PublishPipelineArtifact@1
- displayName: Publish Logs
- inputs:
- targetPath: $(Build.SourcesDirectory)/artifacts/log
- artifactName: 'CrossDacPackagingLogs'
- continueOnError: true
- condition: always()
diff --git a/eng/pipelines/coreclr/templates/sign-diagnostic-files.yml b/eng/pipelines/coreclr/templates/sign-diagnostic-files.yml
index 2c7cd5c73fe670..25f97276c74f26 100644
--- a/eng/pipelines/coreclr/templates/sign-diagnostic-files.yml
+++ b/eng/pipelines/coreclr/templates/sign-diagnostic-files.yml
@@ -5,10 +5,15 @@ parameters:
steps:
- ${{ if and(eq(parameters.isOfficialBuild, true), ne(variables['Build.Reason'], 'PullRequest'), or(startswith(variables['Build.SourceBranch'], 'refs/heads/release/'), startswith(variables['Build.SourceBranch'], 'refs/heads/internal/release/'))) }}:
- - task: EsrpCodeSigning@1
+ - task: EsrpCodeSigning@5
displayName: Sign Diagnostic Binaries
inputs:
- ConnectedServiceName: 'dotnetesrp-diagnostics-dnceng'
+ ConnectedServiceName: 'diagnostics-esrp-kvcertuser'
+ AppRegistrationClientId: '2234cdec-a13f-4bb2-aa63-04c57fd7a1f9'
+ AppRegistrationTenantId: '72f988bf-86f1-41af-91ab-2d7cd011db47'
+ AuthAKVName: 'clrdiag-esrp-id'
+ AuthCertName: 'dotnetesrp-diagnostics-aad-ssl-cert'
+ AuthSignCertName: 'dotnet-diagnostics-esrp-pki-onecert'
FolderPath: ${{ parameters.basePath }}
Pattern: |
**/mscordaccore*.dll
@@ -41,6 +46,7 @@ steps:
SessionTimeout: ${{ parameters.timeoutInMinutes }}
MaxConcurrency: '50'
MaxRetryAttempts: '5'
+ PendingAnalysisWaitTimeoutMinutes: '5'
- powershell: |
$filesToSign = $(Get-ChildItem -Recurse ${{ parameters.basePath }} -Include mscordaccore*.dll, mscordbi*.dll)
diff --git a/eng/pipelines/coreclr/templates/xplat-pipeline-job.yml b/eng/pipelines/coreclr/templates/xplat-pipeline-job.yml
index dd27c1211844fa..fd9c0085f1495a 100644
--- a/eng/pipelines/coreclr/templates/xplat-pipeline-job.yml
+++ b/eng/pipelines/coreclr/templates/xplat-pipeline-job.yml
@@ -41,7 +41,6 @@ jobs:
stagedBuild: ${{ parameters.stagedBuild }}
strategy: ${{ parameters.strategy }}
pool: ${{ parameters.pool }}
- pgoType: ${{ parameters.pgoType }}
# arcade-specific parameters
condition: and(succeeded(), ${{ parameters.condition }})
@@ -67,17 +66,11 @@ jobs:
# Build product defines what we are trying to build, either coreclr or mono
- name: buildProductArtifactName
- value: 'CoreCLRProduct_${{ parameters.pgoType }}_${{ parameters.runtimeVariant }}_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
+ value: 'CoreCLRProduct_${{ parameters.runtimeVariant }}_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
- name: buildProductRootFolderPath
value: '$(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).$(archType).$(buildConfigUpper)'
- - name: buildCrossDacArtifactName
- value: CoreCLRCrossDacArtifacts
-
- - name: crossDacArtifactPath
- value: $(Build.SourcesDirectory)/artifacts/$(buildCrossDacArtifactName)
-
- name: buildMuslDacRootFolderPath
value: '$(Build.SourcesDirectory)/artifacts/bin/coreclr/alpine.$(archType).$(buildConfigUpper)'
@@ -99,13 +92,13 @@ jobs:
# We need this because both mono and coreclr build currently depends on CoreClr
- name: coreClrProductArtifactName
- value: 'CoreCLRProduct_${{ parameters.pgoType }}_${{ parameters.runtimeVariant }}_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
+ value: 'CoreCLRProduct_${{ parameters.runtimeVariant }}_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
- name: coreClrProductRootFolderPath
value: '$(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).$(archType).$(buildConfigUpper)'
- name: corelibProductArtifactName
- value: 'CoreLib_${{ parameters.pgoType }}_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
+ value: 'CoreLib_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
- name: managedGenericTestArtifactName
value: 'CoreCLRManagedTestArtifacts_AnyOS_AnyCPU_$(buildConfig)'
diff --git a/eng/pipelines/global-build.yml b/eng/pipelines/global-build.yml
index 420ba301ad12ee..aee67ca820e236 100644
--- a/eng/pipelines/global-build.yml
+++ b/eng/pipelines/global-build.yml
@@ -128,9 +128,11 @@ jobs:
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/global-build-job.yml
- buildConfig: release
+ buildConfig: Release
platforms:
- - SourceBuild_Linux_x64
+ - SourceBuild_linux_x64
jobParameters:
- nameSuffix: SourceBuild
- timeoutInMinutes: 90
+ nameSuffix: PortableSourceBuild
+ timeoutInMinutes: 95
+ condition:
+ eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true)
diff --git a/eng/pipelines/installer/installer-matrix.yml b/eng/pipelines/installer/installer-matrix.yml
deleted file mode 100644
index e9ae06bf267690..00000000000000
--- a/eng/pipelines/installer/installer-matrix.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-parameters:
- runtimeFlavor: 'coreclr'
- platforms: []
- jobParameters: []
- buildConfig: Release
- runtimeVariant: ''
-
-jobs:
-
-#
-# Build and Test
-#
-- template: /eng/pipelines/common/platform-matrix.yml
- parameters:
- jobTemplate: /eng/pipelines/installer/jobs/base-job.yml
- buildConfig: ${{ parameters.buildConfig }}
- platforms: ${{ parameters.platforms }}
- passPlatforms: true
- runtimeFlavor: ${{ parameters.runtimeFlavor }}
- runtimeVariant: ${{ parameters.runtimeVariant }}
- jobParameters:
- ${{ insert }}: ${{ parameters.jobParameters }}
diff --git a/eng/pipelines/installer/jobs/base-job.yml b/eng/pipelines/installer/jobs/base-job.yml
index 40e7969ba4aab8..ddc8d7f3dc91b1 100644
--- a/eng/pipelines/installer/jobs/base-job.yml
+++ b/eng/pipelines/installer/jobs/base-job.yml
@@ -12,7 +12,6 @@ parameters:
container: ''
buildSteps: []
dependsOn: []
- dependsOnGlobalBuild: false
dependOnEvaluatePaths: false
globalBuildSuffix: ''
variables: []
@@ -20,7 +19,6 @@ parameters:
displayName: ''
runtimeVariant: ''
pool: ''
- pgoType: ''
packageDistroList:
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-14.04-debpkg-e5cf912-20175003025046
@@ -39,8 +37,8 @@ parameters:
platforms: []
jobs:
-- job: ${{ format('installer_{0}_{1}_{2}_{3}_{4}_', parameters.pgoType, parameters.runtimeFlavor, parameters.runtimeVariant, coalesce(parameters.name, parameters.platform), parameters.buildConfig) }}
- displayName: ${{ format('{0} Installer Build and Test {1} {2} {3} {4}', parameters.pgoType, parameters.runtimeFlavor, parameters.runtimeVariant, coalesce(parameters.name, parameters.platform), parameters.buildConfig) }}
+- job: ${{ format('installer_{0}_{1}_{2}_{3}_', parameters.runtimeFlavor, parameters.runtimeVariant, coalesce(parameters.name, parameters.platform), parameters.buildConfig) }}
+ displayName: ${{ format('Installer Build and Test {0} {1} {2} {3}', parameters.runtimeFlavor, parameters.runtimeVariant, coalesce(parameters.name, parameters.platform), parameters.buildConfig) }}
condition: and(succeeded(), ${{ parameters.condition }})
pool: ${{ parameters.pool }}
@@ -65,8 +63,7 @@ jobs:
not(in(parameters.archType, 'x64', 'x86')),
eq(parameters.runtimeFlavor, 'mono'),
eq(parameters.isOfficialBuild, true),
- eq(parameters.crossBuild, true),
- eq(parameters.pgoType, 'PGO')) }}
+ eq(parameters.crossBuild, true)) }}
- name: BuildAction
value: -test
@@ -78,12 +75,6 @@ jobs:
- name: SignType
value: test
- - name: pgoInstrumentArg
- value: ''
- - ${{ if eq(parameters.pgoType, 'PGO' )}}:
- - name: pgoInstrumentArg
- value: '-pgoinstrument '
-
# Set up non-PR build from internal project
- ${{ if eq(parameters.isOfficialBuild, true) }}:
- name: SignType
@@ -126,7 +117,6 @@ jobs:
build.cmd -subset host+packs -ci
$(BuildAction)
-configuration $(_BuildConfig)
- $(pgoInstrumentArg)
$(LiveOverridePathArgs)
$(CommonMSBuildArgs)
$(MsbuildSigningArguments)
@@ -228,7 +218,6 @@ jobs:
/p:CrossBuild=${{ parameters.crossBuild }}
/p:PortableBuild=$(_PortableBuild)
/p:SkipTests=$(SkipTests)
- $(pgoInstrumentArg)
$(LiveOverridePathArgs)
$(CommonMSBuildArgs)
$(OutputRidArg)
@@ -290,7 +279,7 @@ jobs:
/p:RuntimeArtifactsPath=$(buildCommandSourcesDirectory)$(RuntimeDownloadPath)
/p:RuntimeConfiguration=${{ parameters.liveRuntimeBuildConfig }}
- name: RuntimeArtifactName
- value: $(runtimeFlavorName)Product_${{ parameters.pgoType }}_${{ parameters.runtimeVariant }}_$(liveRuntimeLegName)
+ value: $(runtimeFlavorName)Product_${{ parameters.runtimeVariant }}_$(liveRuntimeLegName)
- ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}:
- name: liveLibrariesLegName
@@ -311,14 +300,13 @@ jobs:
- evaluate_paths
- ${{ parameters.dependsOn }}
- ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}:
- - ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}{6}',
+ - ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}',
parameters.runtimeFlavor,
parameters.runtimeVariant,
parameters.osGroup,
parameters.osSubgroup,
parameters.archType,
- parameters.liveRuntimeBuildConfig,
- parameters.pgoType) }}
+ parameters.liveRuntimeBuildConfig) }}
- ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}:
- libraries_build_${{ format('{0}{1}_{2}_{3}',
parameters.osGroup,
@@ -409,32 +397,9 @@ jobs:
env:
Token: $(dn-bot-dnceng-artifact-feeds-rw)
- # Build the default subset non-MacOS platforms
- - ${{ if ne(parameters.osGroup, 'OSX') }}:
- - script: $(BaseJobBuildCommand)
- displayName: Build
- continueOnError: ${{ and(eq(variables.SkipTests, false), eq(parameters.shouldContinueOnError, true)) }}
-
- # Build corehost, sign and add entitlements to MacOS binaries
- - ${{ if eq(parameters.osGroup, 'OSX') }}:
- - script: $(BaseJobBuildCommand) -subset host.native
- displayName: Build CoreHost
- continueOnError: ${{ and(eq(variables.SkipTests, false), eq(parameters.shouldContinueOnError, true)) }}
-
- - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- - template: /eng/pipelines/common/macos-sign-with-entitlements.yml
- parameters:
- filesToSign:
- - name: dotnet
- path: $(Build.SourcesDirectory)/artifacts/bin/osx-${{ parameters.archType }}.$(_BuildConfig)/corehost
- entitlementsFile: $(Build.SourcesDirectory)/eng/pipelines/common/entitlements.plist
- - name: apphost
- path: $(Build.SourcesDirectory)/artifacts/bin/osx-${{ parameters.archType }}.$(_BuildConfig)/corehost
- entitlementsFile: $(Build.SourcesDirectory)/eng/pipelines/common/entitlements.plist
-
- - script: $(BaseJobBuildCommand) -subset host.pkg+host.tools+host.tests+packs
- displayName: Build and Package
- continueOnError: ${{ and(eq(variables.SkipTests, false), eq(parameters.shouldContinueOnError, true)) }}
+ - script: $(BaseJobBuildCommand)
+ displayName: Build
+ continueOnError: ${{ and(eq(variables.SkipTests, false), eq(parameters.shouldContinueOnError, true)) }}
- ${{ if in(parameters.osGroup, 'OSX', 'iOS', 'tvOS') }}:
- script: |
@@ -443,7 +408,7 @@ jobs:
displayName: Disk Usage after Build
# Only in glibc leg, we produce RPMs and Debs
- - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), or(eq(parameters.platform, 'Linux_x64'), eq(parameters.platform, 'Linux_arm64')), eq(parameters.osSubgroup, ''), eq(parameters.pgoType, ''))}}:
+ - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), or(eq(parameters.platform, 'Linux_x64'), eq(parameters.platform, 'Linux_arm64')), eq(parameters.osSubgroup, ''))}}:
- ${{ each packageBuild in parameters.packageDistroList }}:
# This leg's RID matches the build image. Build its distro-dependent packages, as well as
# the distro-independent installers. (There's no particular reason to build the distro-
@@ -494,7 +459,6 @@ jobs:
runtimeVariant: ${{ parameters.runtimeVariant }}
skipTests: $(SkipTests)
isOfficialBuild: ${{ eq(parameters.isOfficialBuild, true) }}
- pgoType: ${{ parameters.pgoType }}
- ${{ if ne(parameters.osGroup, 'windows') }}:
- script: set -x && df -h
diff --git a/eng/pipelines/installer/jobs/steps/upload-job-artifacts.yml b/eng/pipelines/installer/jobs/steps/upload-job-artifacts.yml
index b45ff4cedc0523..30032b7da22eee 100644
--- a/eng/pipelines/installer/jobs/steps/upload-job-artifacts.yml
+++ b/eng/pipelines/installer/jobs/steps/upload-job-artifacts.yml
@@ -3,7 +3,6 @@ parameters:
runtimeFlavor: 'coreclr'
runtimeVariant: ''
isOfficialBuild: false
- pgoType: ''
steps:
# Upload build artifacts (packages) to pipeline only if official, to save storage space.
@@ -39,6 +38,6 @@ steps:
displayName: Publish BuildLogs
inputs:
targetPath: '$(Build.StagingDirectory)/BuildLogs'
- artifactName: Installer-Logs-${{parameters.pgoType }}${{ parameters.runtimeFlavor }}-${{ parameters.runtimeVariant }}-${{ parameters.name }}-$(_BuildConfig)
+ artifactName: Installer-Logs-${{ parameters.runtimeFlavor }}-${{ parameters.runtimeVariant }}-${{ parameters.name }}-$(_BuildConfig)
continueOnError: true
condition: succeededOrFailed()
diff --git a/eng/pipelines/libraries/base-job.yml b/eng/pipelines/libraries/base-job.yml
index 8f11488b072a77..00adbce6bce703 100644
--- a/eng/pipelines/libraries/base-job.yml
+++ b/eng/pipelines/libraries/base-job.yml
@@ -6,7 +6,6 @@ parameters:
crossBuild: false
crossrootfsDir: ''
framework: 'net6.0'
- isOfficialAllConfigurations: false
isSourceBuild: false
liveRuntimeBuildConfig: ''
runtimeFlavor: 'coreclr'
@@ -23,17 +22,12 @@ parameters:
testScope: ''
pool: ''
runTests: false
- pgoType: ''
jobs:
- template: /eng/common/templates/job/job.yml
parameters:
- ${{ if notIn(parameters.framework, 'allConfigurations', 'net48') }}:
- displayName: ${{ format('Libraries {0} {1}{2} {3} {4}', parameters.displayName, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
- name: ${{ format('libraries_{0}_{1}{2}_{3}_{4}', parameters.name, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
- ${{ if in(parameters.framework, 'allConfigurations', 'net48') }}:
- displayName: ${{ format('Libraries {0} {1} {2} {3} {4}', parameters.displayName, parameters.osGroup, parameters.framework, parameters.archType, parameters.buildConfig) }}
- name: ${{ format('libraries_{0}_{1}_{2}{3}_{4}_{5}', parameters.name, parameters.framework, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
+ displayName: ${{ format('Libraries {0} {1}{2} {3} {4}', parameters.displayName, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
+ name: ${{ format('libraries_{0}_{1}{2}_{3}_{4}', parameters.name, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
enableTelemetry: ${{ parameters.isOfficialBuild }} # TODO: figure out if it's needed
container: ${{ parameters.container }}
@@ -81,13 +75,6 @@ jobs:
- _finalFrameworkArg: -framework ${{ parameters.framework }}
- _extraHelixArguments: /p:BuildTargetFramework=${{ parameters.framework }}
- - ${{ if eq(parameters.framework, 'allConfigurations') }}:
- - _finalFrameworkArg: -allConfigurations
- - _testModeArg: /p:TestAssemblies=false /p:TestPackages=true
-
- - ${{ if eq(parameters.isOfficialAllConfigurations, true) }}:
- - librariesBuildArtifactName: 'libraries_bin_official_allconfigurations'
-
- ${{ if eq(parameters.isOfficialBuild, true) }}:
- _msbuildCommonParameters: /p:OfficialBuildId=$(Build.BuildNumber)
@@ -100,7 +87,7 @@ jobs:
- _runtimeDownloadPath: '$(Build.SourcesDirectory)/artifacts/transport/${{ parameters.runtimeFlavor }}'
- _runtimeConfigurationArg: -rc ${{ parameters.liveRuntimeBuildConfig }}
- ${{ if eq(parameters.runTests, true) }}:
- - _runtimeArtifactName: '$(runtimeFlavorName)Product_${{ parameters.pgoType }}_${{ parameters.runtimeVariant}}_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.liveRuntimeBuildConfig }}'
+ - _runtimeArtifactName: '$(runtimeFlavorName)Product_${{ parameters.runtimeVariant}}_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.liveRuntimeBuildConfig }}'
- _runtimeArtifactsPathArg: ' /p:RuntimeArtifactsPath=$(_runtimeDownloadPath)'
- ${{ if eq(parameters.testDisplayName, '') }}:
- _testRunNamePrefixSuffix: $(runtimeFlavorName)_${{ parameters.liveRuntimeBuildConfig }}
diff --git a/eng/pipelines/libraries/build-job.yml b/eng/pipelines/libraries/build-job.yml
index 6ed1d936967663..7577004470f945 100644
--- a/eng/pipelines/libraries/build-job.yml
+++ b/eng/pipelines/libraries/build-job.yml
@@ -8,29 +8,17 @@ parameters:
crossrootfsDir: ''
framework: 'net6.0'
isOfficialBuild: false
- isOfficialAllConfigurations: false
runtimeVariant: ''
platform: ''
-
- # When set to a non-empty value (Debug / Release), it determines the runtime's
- # build configuration to use for building libraries and tests. Setting this
- # property implies a dependency of this job on the appropriate runtime build
- # and is used to construct the name of the Azure artifact representing
- # runtime build to use for building the libraries and library tests.
- liveRuntimeBuildConfig: ''
- runtimeFlavor: 'coreclr'
+ testScope: ''
timeoutInMinutes: 150
- preBuildSteps: []
container: ''
condition: true
dependOnEvaluatePaths: false
shouldContinueOnError: false
variables: {}
pool: ''
- runTests: false
- useHelix: true
- testScope: ''
testBuildPlatforms: []
jobs:
@@ -44,12 +32,9 @@ jobs:
crossrootfsDir: ${{ parameters.crossrootfsDir }}
framework: ${{ parameters.framework }}
isOfficialBuild: ${{ parameters.isOfficialBuild }}
- isOfficialAllConfigurations: ${{ parameters.isOfficialAllConfigurations }}
- liveRuntimeBuildConfig: ${{ parameters.liveRuntimeBuildConfig }}
runtimeFlavor: ${{ parameters.runtimeFlavor }}
- runTests: ${{ parameters.runTests }}
+ runTests: false
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
- preBuildSteps: ${{ parameters.preBuildSteps }}
container: ${{ parameters.container }}
condition: ${{ parameters.condition }}
dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
@@ -59,33 +44,14 @@ jobs:
name: build
displayName: 'Build'
- ${{ if and(ne(parameters.liveRuntimeBuildConfig, ''), eq(parameters.runTests, true)) }}:
- dependsOn:
- # Use full product dependency for test runs
- - ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveRuntimeBuildConfig) }}
-
variables:
- librariesTestsArtifactName: ${{ format('libraries_test_assets_{0}_{1}_{2}', parameters.osGroup, parameters.archType, parameters.buildConfig) }}
- - _subset: libs
+ - _subset: libs+libs.tests
- _buildAction: ''
- - _additionalBuildArguments: ''
- - ${{ parameters.variables }}
-
- # Tests only run for 'allConfiguration' and 'net48' build-jobs
- # If platform is in testBuildPlatforms we build tests as well.
- - ${{ if or(eq(parameters.runTests, true), containsValue(parameters.testBuildPlatforms, parameters.platform)) }}:
- - _subset: libs+libs.tests
- - ${{ if eq(parameters.useHelix, false) }}:
- - _buildAction: -restore -build -test
- - ${{ if eq(parameters.useHelix, true) }}:
- - _additionalBuildArguments: /p:ArchiveTests=true
-
+ - _additionalBuildArguments: '/p:ArchiveTests=true'
- ${{ parameters.variables }}
steps:
- - ${{ if eq(parameters.isOfficialBuild, true) }}:
- - template: /eng/pipelines/common/restore-internal-tools.yml
-
- ${{ if in(parameters.osGroup, 'OSX', 'MacCatalyst', 'iOS', 'iOSSimulator', 'tvOS', 'tvOSSimulator') }}:
- script: $(Build.SourcesDirectory)/eng/install-native-dependencies.sh ${{ parameters.osGroup }} ${{ parameters.archType }} azDO
displayName: Install Build Dependencies
@@ -108,55 +74,26 @@ jobs:
df -h
displayName: Disk Usage after Build
- - ${{ if eq(parameters.runTests, false) }}:
- - template: /eng/pipelines/libraries/prepare-for-bin-publish.yml
- parameters:
- isOfficialBuild: ${{ parameters.isOfficialBuild }}
-
- - template: /eng/pipelines/common/upload-artifact-step.yml
- parameters:
- rootFolder: $(Build.ArtifactStagingDirectory)/artifacts
- includeRootFolder: false
- archiveType: $(archiveType)
- archiveExtension: $(archiveExtension)
- tarCompression: $(tarCompression)
- artifactName: $(librariesBuildArtifactName)
- displayName: Build Assets
-
- - ${{ if containsValue(parameters.testBuildPlatforms, parameters.platform) }}:
- - template: /eng/pipelines/common/upload-artifact-step.yml
- parameters:
- rootFolder: $(Build.SourcesDirectory)/artifacts/helix
- includeRootFolder: true
- archiveType: $(archiveType)
- archiveExtension: $(archiveExtension)
- tarCompression: $(tarCompression)
- artifactName: $(librariesTestsArtifactName)
- displayName: Test Assets
-
- # Save AllConfigurations artifacts using the prepare-signed-artifacts format. The
- # platform-specific jobs' nupkgs automatically flow through the matching platform-specific
- # Installer build, but AllConfigurations should only be uploaded once, here.
- - ${{ if eq(parameters.isOfficialAllConfigurations, true) }}:
- - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
- parameters:
- name: Libraries_AllConfigurations
- publishPackagesCondition: >-
- or(
- eq(variables['_librariesBuildProducedPackages'], true),
- eq(variables['Build.SourceBranchName'], 'main'),
- eq(variables['System.PullRequest.TargetBranch'], 'main'))
-
- - ${{ if and(eq(parameters.runTests, true), eq(parameters.useHelix, true)) }}:
- - template: /eng/pipelines/libraries/helix.yml
- parameters:
- osGroup: ${{ parameters.osGroup }}
- targetRid: ${{ parameters.targetRid }}
- archType: ${{ parameters.archType }}
- buildConfig: ${{ parameters.buildConfig }}
- helixQueues: ${{ parameters.helixQueues }}
- testScope: ${{ parameters.testScope }}
- shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
- creator: dotnet-bot
- testRunNamePrefixSuffix: $(_testRunNamePrefixSuffix)
- extraHelixArguments: $(_extraHelixArguments)
+ - template: /eng/pipelines/libraries/prepare-for-bin-publish.yml
+
+ - template: /eng/pipelines/common/upload-artifact-step.yml
+ parameters:
+ rootFolder: $(Build.ArtifactStagingDirectory)/artifacts
+ includeRootFolder: false
+ archiveType: $(archiveType)
+ archiveExtension: $(archiveExtension)
+ tarCompression: $(tarCompression)
+ artifactName: $(librariesBuildArtifactName)
+ displayName: Build Assets
+
+ # Upload test assets
+ # We'll pull them down in another job to send to Helix
+ - template: /eng/pipelines/common/upload-artifact-step.yml
+ parameters:
+ rootFolder: $(Build.SourcesDirectory)/artifacts/helix
+ includeRootFolder: true
+ archiveType: $(archiveType)
+ archiveExtension: $(archiveExtension)
+ tarCompression: $(tarCompression)
+ artifactName: $(librariesTestsArtifactName)
+ displayName: Test Assets
\ No newline at end of file
diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml
index 2de2e9f3b15809..28f9a23a04e6a0 100644
--- a/eng/pipelines/libraries/helix-queues-setup.yml
+++ b/eng/pipelines/libraries/helix-queues-setup.yml
@@ -147,18 +147,15 @@ jobs:
# netcoreapp
- ${{ if notIn(parameters.jobParameters.framework, 'net48') }}:
- ${{ if and(eq(parameters.jobParameters.testScope, 'outerloop'), eq(parameters.jobParameters.runtimeFlavor, 'mono')) }}:
- - Windows.7.Amd64.Open
- Windows.10.Amd64.ServerRS5.Open
- ${{ if or(ne(parameters.jobParameters.testScope, 'outerloop'), ne(parameters.jobParameters.runtimeFlavor, 'mono')) }}:
- ${{ if eq(parameters.jobParameters.isFullMatrix, true) }}:
- - Windows.7.Amd64.Open
- Windows.10.Amd64.ServerRS5.Open
- Windows.Amd64.Server2022.Open
- ${{ if ne(parameters.jobParameters.isFullMatrix, true) }}:
- ${{ if eq(parameters.jobParameters.buildConfig, 'Release') }}:
- Windows.Amd64.Server2022.Open
- ${{ if eq(parameters.jobParameters.buildConfig, 'Debug') }}:
- - Windows.7.Amd64.Open
- Windows.Amd64.Server2022.Open
# .NETFramework
diff --git a/eng/pipelines/libraries/outerloop-mono.yml b/eng/pipelines/libraries/outerloop-mono.yml
index f73f0c1e03c323..7c944b2c9a5072 100644
--- a/eng/pipelines/libraries/outerloop-mono.yml
+++ b/eng/pipelines/libraries/outerloop-mono.yml
@@ -36,13 +36,14 @@ jobs:
timeoutInMinutes: 180
isFullMatrix: ${{ variables['isFullMatrix'] }}
# extra steps, run tests
- extraStepsTemplate: /eng/pipelines/libraries/helix.yml
- extraStepsParameters:
- scenarios:
- - wasmtestonbrowser
- testScope: outerloop
- creator: dotnet-bot
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ postBuildSteps:
+ - template: /eng/pipelines/libraries/helix.yml
+ parameters:
+ scenarios:
+ - wasmtestonbrowser
+ testScope: outerloop
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
- ${{ if eq(variables['isFullMatrix'], false) }}:
- template: /eng/pipelines/common/platform-matrix.yml
@@ -63,8 +64,9 @@ jobs:
timeoutInMinutes: 180
isFullMatrix: ${{ variables['isFullMatrix'] }}
# extra steps, run tests
- extraStepsTemplate: /eng/pipelines/libraries/helix.yml
- extraStepsParameters:
- testScope: outerloop
- creator: dotnet-bot
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ postBuildSteps:
+ - template: /eng/pipelines/libraries/helix.yml
+ parameters:
+ testScope: outerloop
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
diff --git a/eng/pipelines/libraries/run-test-job.yml b/eng/pipelines/libraries/run-test-job.yml
index ba8c49a70ffd2b..90235ef9921fc8 100644
--- a/eng/pipelines/libraries/run-test-job.yml
+++ b/eng/pipelines/libraries/run-test-job.yml
@@ -67,11 +67,7 @@ jobs:
- ${{ if ne(parameters.dependsOn[0], '') }}:
- ${{ parameters.dependsOn }}
- ${{ if eq(parameters.dependsOn[0], '') }}:
- - ${{ if notIn(parameters.framework, 'allConfigurations', 'net48') }}:
- - ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
- # tests are built as part of product build
- - ${{ if or(ne(parameters.archType, parameters.dependsOnTestArchitecture), ne(parameters.buildConfig, parameters.dependsOnTestBuildConfiguration), ne(parameters.osSubgroup, parameters.dependsOnTestOsSubgroup)) }}:
- - ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.dependsOnTestOsSubgroup, parameters.dependsOnTestArchitecture, parameters.dependsOnTestBuildConfiguration) }}
+ - ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
- ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}:
- ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveRuntimeBuildConfig) }}
diff --git a/eng/pipelines/mono/templates/build-job.yml b/eng/pipelines/mono/templates/build-job.yml
index ea39f5d63e35e7..a09a601c6c2d9e 100644
--- a/eng/pipelines/mono/templates/build-job.yml
+++ b/eng/pipelines/mono/templates/build-job.yml
@@ -16,7 +16,6 @@ parameters:
dependsOn: []
monoCrossAOTTargetOS: []
dependOnEvaluatePaths: false
- pgoType: ''
### Product build
jobs:
diff --git a/eng/pipelines/mono/templates/xplat-pipeline-job.yml b/eng/pipelines/mono/templates/xplat-pipeline-job.yml
index 0b0ae5a28f6e64..5302b773181230 100644
--- a/eng/pipelines/mono/templates/xplat-pipeline-job.yml
+++ b/eng/pipelines/mono/templates/xplat-pipeline-job.yml
@@ -50,18 +50,18 @@ jobs:
variables:
- name: coreClrProductArtifactName
- value: 'CoreCLRProduct___$(osGroup)$(osSubgroup)_$(archType)_${{ parameters.liveRuntimeBuildConfig }}'
+ value: 'CoreCLRProduct__$(osGroup)$(osSubgroup)_$(archType)_${{ parameters.liveRuntimeBuildConfig }}'
- name: coreClrProductRootFolderPath
value: '$(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).$(archType).$(liveRuntimeBuildConfigUpper)'
- name: buildProductArtifactName
- value: 'MonoProduct__${{ parameters.runtimeVariant }}_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
+ value: 'MonoProduct_${{ parameters.runtimeVariant }}_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
# minijit and monointerpreter do not use seperate product builds.
- ${{ if or(eq(parameters.runtimeVariant, 'minijit'), eq(parameters.runtimeVariant, 'monointerpreter')) }}:
- name : buildProductArtifactName
- value : 'MonoProduct___$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
+ value : 'MonoProduct__$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
- name: binTestsPath
value: '$(Build.SourcesDirectory)/artifacts/tests/coreclr'
diff --git a/eng/pipelines/runtime-community.yml b/eng/pipelines/runtime-community.yml
index 9ecb1f2677ae2d..bce691fbc85687 100644
--- a/eng/pipelines/runtime-community.yml
+++ b/eng/pipelines/runtime-community.yml
@@ -49,12 +49,13 @@ jobs:
eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
eq(variables['isFullMatrix'], true))
# extra steps, run tests
- extraStepsTemplate: /eng/pipelines/libraries/helix.yml
- extraStepsParameters:
- creator: dotnet-bot
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
- condition: >-
- or(
- eq(variables['librariesContainsChange'], true),
- eq(variables['monoContainsChange'], true),
- eq(variables['isFullMatrix'], true))
+ postBuildSteps:
+ - template: /eng/pipelines/libraries/helix.yml
+ parameters:
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ condition: >-
+ or(
+ eq(variables['librariesContainsChange'], true),
+ eq(variables['monoContainsChange'], true),
+ eq(variables['isRollingBuild'], true))
diff --git a/eng/pipelines/runtime-linker-tests.yml b/eng/pipelines/runtime-linker-tests.yml
index 836b54c849ab5f..ba1151f9d6b7f5 100644
--- a/eng/pipelines/runtime-linker-tests.yml
+++ b/eng/pipelines/runtime-linker-tests.yml
@@ -60,7 +60,8 @@ jobs:
timeoutInMinutes: 120
nameSuffix: Runtime_Release
buildArgs: -s clr+libs -c $(_BuildConfig)
- extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml
+ postBuildSteps:
+ - template: /eng/pipelines/libraries/execute-trimming-tests-steps.yml
#
# Build Release config vertical for Browser-wasm
@@ -76,6 +77,7 @@ jobs:
timeoutInMinutes: 120
nameSuffix: Runtime_Release
buildArgs: -s mono+libs -c $(_BuildConfig) -p:WasmBuildNative=false
- extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml
- extraStepsParameters:
- extraTestArgs: '/p:WasmBuildNative=false'
+ postBuildSteps:
+ - template: /eng/pipelines/libraries/execute-trimming-tests-steps.yml
+ parameters:
+ extraTestArgs: '/p:WasmBuildNative=false'
diff --git a/eng/pipelines/runtime-official.yml b/eng/pipelines/runtime-official.yml
index ae1b730798061b..3deb44c621ba7a 100644
--- a/eng/pipelines/runtime-official.yml
+++ b/eng/pipelines/runtime-official.yml
@@ -60,49 +60,139 @@ stages:
sourceIndexBuildCommand: build.cmd -subset libs.ref+libs.src -binarylog -os Linux -ci
#
- # Build CoreCLR
+ # Build CoreCLR runtime packs
+ # Windows x64/x86/arm64/arm
+ # Sign diagnostic files after native build
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
- jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
+ jobTemplate: /eng/pipelines/common/global-build-job.yml
buildConfig: release
platforms:
- - OSX_arm64
- - OSX_x64
- - Linux_x64
- - Linux_arm
- - Linux_arm64
- - Linux_musl_x64
- - Linux_musl_arm
- - Linux_musl_arm64
- - windows_x86
- windows_x64
- - windows_arm
+ - windows_x86
- windows_arm64
+ - windows_arm
jobParameters:
+ buildArgs: -s clr.runtime+clr.alljits -c $(_BuildConfig) /bl:$(Build.SourcesDirectory)/artifacts/logs/$(_BuildConfig)/CoreClrNativeBuild.binlog
+ nameSuffix: CoreCLR
isOfficialBuild: ${{ variables.isOfficialBuild }}
- signBinaries: ${{ variables.isOfficialBuild }}
timeoutInMinutes: 120
+ postBuildSteps:
+ - template: /eng/pipelines/coreclr/templates/sign-diagnostic-files.yml
+ parameters:
+ basePath: $(Build.SourcesDirectory)/artifacts/bin/coreclr
+ isOfficialBuild: ${{ variables.isOfficialBuild }}
+ timeoutInMinutes: 30
+ # Now that we've signed the diagnostic files, do the rest of the build.
+ - template: /eng/pipelines/common/templates/global-build-step.yml
+ parameters:
+ buildArgs: -s clr.corelib+clr.nativecorelib+clr.tools+clr.packages+clr.paltestlist+libs+host+packs -c $(_BuildConfig)
+ displayName: Build managed CoreCLR components, all libraries, hosts, and packs
+ # Upload the results.
+ - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+ parameters:
+ name: $(osGroup)$(osSubgroup)_$(archType)
+
+ #
+ # Build CoreCLR runtime packs
+ # Mac x64/arm64
+ # Sign and entitle createdump and corerun after native build.
+ #
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
- jobTemplate: /eng/pipelines/coreclr/templates/crossdac-pack.yml
+ jobTemplate: /eng/pipelines/common/global-build-job.yml
buildConfig: release
platforms:
- - windows_x64
+ - osx_arm64
+ - osx_x64
jobParameters:
+ buildArgs: -s clr.runtime+clr.alljits+host.native -c $(_BuildConfig) /bl:$(Build.SourcesDirectory)/artifacts/logs/$(_BuildConfig)/CoreClrNativeBuild.binlog
+ nameSuffix: CoreCLR
isOfficialBuild: ${{ variables.isOfficialBuild }}
timeoutInMinutes: 120
- crossDacPlatforms:
- - Linux_x64
- - Linux_arm
- - Linux_arm64
- - Linux_musl_x64
- - Linux_musl_arm
- - Linux_musl_arm64
- - windows_x64
- - windows_arm
- - windows_arm64
+ postBuildSteps:
+ - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - template: /eng/pipelines/common/macos-sign-with-entitlements.yml
+ parameters:
+ filesToSign:
+ - name: createdump
+ path: $(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).$(archType).$(_BuildConfig)
+ entitlementsFile: $(Build.SourcesDirectory)/eng/pipelines/common/createdump-entitlements.plist
+ - name: corerun
+ path: $(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).$(archType).$(_BuildConfig)
+ entitlementsFile: $(Build.SourcesDirectory)/eng/pipelines/common/entitlements.plist
+ - name: dotnet
+ path: $(Build.SourcesDirectory)/artifacts/bin/$(osGroup)-$(archType).$(_BuildConfig)/corehost
+ entitlementsFile: $(Build.SourcesDirectory)/eng/pipelines/common/entitlements.plist
+ - name: apphost
+ path: $(Build.SourcesDirectory)/artifacts/bin/$(osGroup)-$(archType).$(_BuildConfig)/corehost
+ entitlementsFile: $(Build.SourcesDirectory)/eng/pipelines/common/entitlements.plist
+
+ - task: CopyFiles@2
+ displayName: 'Copy signed createdump to sharedFramework'
+ inputs:
+ contents: createdump
+ sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).$(archType).$(_BuildConfig)
+ targetFolder: $(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).$(archType).$(_BuildConfig)/sharedFramework
+ overWrite: true
+
+ # Now that we've entitled and signed createdump, we can build the rest.
+ - template: /eng/pipelines/common/templates/global-build-step.yml
+ parameters:
+ buildArgs: -s clr.corelib+clr.nativecorelib+clr.tools+clr.packages+libs+host.tools+host.pkg+packs -c $(_BuildConfig)
+ displayName: Build managed CoreCLR and host components, all libraries, and packs
+
+ # Upload the results.
+ - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+ parameters:
+ name: $(osGroup)$(osSubgroup)_$(archType)
+
+ #
+ # Build CoreCLR runtime packs
+ # Linux and Linux_musl
+ # CoreCLR runtime for CrossDac packaging
+ # Create Linux installers
+ #
+ - template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/common/global-build-job.yml
+ buildConfig: release
+ platforms:
+ - linux_x64
+ - linux_arm
+ - linux_arm64
+ - linux_musl_x64
+ - linux_musl_arm
+ - linux_musl_arm64
+ jobParameters:
+ buildArgs: -s clr.runtime+clr.alljits+clr.corelib+clr.nativecorelib+clr.tools+clr.packages+libs+host+packs -c $(_BuildConfig)
+ nameSuffix: CoreCLR
+ isOfficialBuild: ${{ variables.isOfficialBuild }}
+ timeoutInMinutes: 120
+ postBuildSteps:
+ # Upload libcoreclr.so for CrossDac packaging
+ - task: CopyFiles@2
+ displayName: Gather runtime for CrossDac
+ inputs:
+ SourceFolder: $(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).$(archType).$(_BuildConfig)
+ Contents: libcoreclr.so
+ TargetFolder: $(Build.SourcesDirectory)/artifacts/CoreCLRCrossDacArtifacts/$(osGroup)$(osSubgroup).$(archType).$(_BuildConfig)/$(crossDacHostArch)
+ - task: PublishBuildArtifacts@1
+ displayName: Publish runtime for CrossDac
+ inputs:
+ pathToPublish: $(Build.SourcesDirectory)/artifacts/CoreCLRCrossDacArtifacts
+ PublishLocation: Container
+ artifactName: CoreCLRCrossDacArtifacts
+
+ # Upload the results.
+ - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+ parameters:
+ name: $(osGroup)$(osSubgroup)_$(archType)
+ extraVariablesTemplates:
+ - template: /eng/pipelines/coreclr/templates/crossdac-hostarch.yml
+
#
# Build Mono runtime packs
#
@@ -141,11 +231,12 @@ stages:
# - windows_arm64
jobParameters:
buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
- nameSuffix: AllSubsets_Mono
+ nameSuffix: Mono
isOfficialBuild: ${{ variables.isOfficialBuild }}
- extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
- extraStepsParameters:
- name: MonoRuntimePacks
+ postBuildSteps:
+ - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+ parameters:
+ name: MonoRuntimePacks
# Build Mono AOT offset headers once, for consumption elsewhere
#
@@ -184,9 +275,10 @@ stages:
- Android
- Browser
isOfficialBuild: ${{ variables.isOfficialBuild }}
- extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
- extraStepsParameters:
- name: MonoRuntimePacks
+ postBuildSteps:
+ - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+ parameters:
+ name: MonoRuntimePacks
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
@@ -207,9 +299,10 @@ stages:
- Android
- Browser
isOfficialBuild: ${{ variables.isOfficialBuild }}
- extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
- extraStepsParameters:
- name: MonoRuntimePacks
+ postBuildSteps:
+ - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+ parameters:
+ name: MonoRuntimePacks
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
@@ -236,9 +329,10 @@ stages:
- iOS
- MacCatalyst
isOfficialBuild: ${{ variables.isOfficialBuild }}
- extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
- extraStepsParameters:
- name: MonoRuntimePacks
+ postBuildSteps:
+ - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+ parameters:
+ name: MonoRuntimePacks
#
# Build Mono LLVM runtime packs
@@ -264,12 +358,13 @@ stages:
jobParameters:
buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
/p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false
- nameSuffix: AllSubsets_Mono_LLVMJIT
+ nameSuffix: Mono_LLVMJIT
runtimeVariant: LLVMJIT
isOfficialBuild: ${{ variables.isOfficialBuild }}
- extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
- extraStepsParameters:
- name: MonoRuntimePacks
+ postBuildSteps:
+ - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+ parameters:
+ name: MonoRuntimePacks
#LLVMAOT
- jobTemplate: /eng/pipelines/common/global-build-job.yml
buildConfig: release
@@ -277,125 +372,71 @@ stages:
jobParameters:
buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
/p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true
- nameSuffix: AllSubsets_Mono_LLVMAOT
+ nameSuffix: Mono_LLVMAOT
runtimeVariant: LLVMAOT
isOfficialBuild: ${{ variables.isOfficialBuild }}
- extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
- extraStepsParameters:
- name: MonoRuntimePacks
-
- #
- # Build libraries using live CoreLib from CoreCLR
- #
- - template: /eng/pipelines/common/platform-matrix.yml
- parameters:
- jobTemplate: /eng/pipelines/libraries/build-job.yml
- buildConfig: Release
- platforms:
- - OSX_arm64
- - OSX_x64
- - Linux_x64
- - Linux_arm
- - Linux_arm64
- - Linux_musl_x64
- - Linux_musl_arm
- - Linux_musl_arm64
- - windows_x86
- - windows_x64
- - windows_arm
- - windows_arm64
- jobParameters:
- isOfficialBuild: ${{ variables.isOfficialBuild }}
- liveRuntimeBuildConfig: release
+ postBuildSteps:
+ - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+ parameters:
+ name: MonoRuntimePacks
#
# Build libraries AllConfigurations for packages
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
- jobTemplate: /eng/pipelines/libraries/build-job.yml
+ jobTemplate: /eng/pipelines/common/global-build-job.yml
buildConfig: Release
platforms:
- windows_x64
jobParameters:
- framework: allConfigurations
- isOfficialBuild: ${{ variables.isOfficialBuild }}
- isOfficialAllConfigurations: true
- liveRuntimeBuildConfig: release
+ buildArgs: -s libs -allConfigurations -c $(_BuildConfig) /p:TestAssemblies=false /p:TestPackages=true
+ nameSuffix: Libraries_AllConfigurations
+ postBuildSteps:
+ - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+ parameters:
+ name: Libraries_AllConfigurations
+ timeoutInMinutes: 95
#
- # Build Sourcebuild leg
+ # Build SourceBuild leg
#
-# - template: /eng/pipelines/common/platform-matrix.yml
-# parameters:
-# jobTemplate: /eng/pipelines/common/global-build-job.yml
-# buildConfig: Release
-# helixQueueGroup: ci
-# platforms:
-# - SourceBuild_Linux_x64
-# jobParameters:
-# nameSuffix: SourceBuild
-# extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
-# extraStepsParameters:
-# name: SourceBuildPackages
-# timeoutInMinutes: 95
-
+ # - template: /eng/pipelines/common/platform-matrix.yml
+ # parameters:
+ # jobTemplate: /eng/pipelines/common/global-build-job.yml
+ # buildConfig: Release
+ # helixQueueGroup: ci
+ # platforms:
+ # - SourceBuild_Linux_x64
+ # jobParameters:
+ # nameSuffix: PortableSourceBuild
+ # postBuildSteps:
+ # - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+ # parameters:
+ # name: SourceBuildPackages
+ # timeoutInMinutes: 95
#
- # Installer Build
- #
- - template: /eng/pipelines/installer/installer-matrix.yml
- parameters:
- jobParameters:
- liveRuntimeBuildConfig: release
- liveLibrariesBuildConfig: Release
- isOfficialBuild: ${{ variables.isOfficialBuild }}
- platforms:
- - OSX_arm64
- - OSX_x64
- - Linux_x64
- - Linux_arm
- - Linux_arm64
- - Linux_musl_x64
- - Linux_musl_arm
- - Linux_musl_arm64
- - windows_x86
- - windows_x64
- - windows_arm
- - windows_arm64
-
- #
- # Build PGO CoreCLR release
+ # Build PGO Instrumented CoreCLR Release
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
- jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
+ jobTemplate: /eng/pipelines/common/global-build-job.yml
buildConfig: release
+ helixQueueGroup: ci
platforms:
- windows_x64
- windows_x86
- Linux_x64
jobParameters:
+ buildArgs: -s clr.native+clr.corelib+clr.tools+clr.nativecorelib+libs+host+packs -c $(_BuildConfig) -pgoinstrument
isOfficialBuild: ${{ variables.isOfficialBuild }}
- signBinaries: false
- testGroup: innerloop
- pgoType: 'PGO'
-
- #
- # PGO Build
- #
- - template: /eng/pipelines/installer/installer-matrix.yml
- parameters:
- buildConfig: Release
- jobParameters:
- isOfficialBuild: ${{ variables.isOfficialBuild }}
- liveRuntimeBuildConfig: release
- liveLibrariesBuildConfig: Release
- pgoType: 'PGO'
- platforms:
- - windows_x64
- - windows_x86
- - Linux_x64
+ nameSuffix: PGO
+ postBuildSteps:
+ - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+ parameters:
+ name: PGO
+ timeoutInMinutes: 95
#
# Build Workloads
@@ -410,26 +451,26 @@ stages:
isOfficialBuild: ${{ variables.isOfficialBuild }}
timeoutInMinutes: 120
dependsOn:
- - Build_Android_arm_release_AllSubsets_Mono
- - Build_Android_arm64_release_AllSubsets_Mono
- - Build_Android_x86_release_AllSubsets_Mono
- - Build_Android_x64_release_AllSubsets_Mono
- - Build_Browser_wasm_release_AllSubsets_Mono
- - Build_iOS_arm_release_AllSubsets_Mono
- - Build_iOS_arm64_release_AllSubsets_Mono
- - Build_iOSSimulator_x64_release_AllSubsets_Mono
- - Build_iOSSimulator_x86_release_AllSubsets_Mono
- - Build_iOSSimulator_arm64_release_AllSubsets_Mono
- - Build_MacCatalyst_arm64_release_AllSubsets_Mono
- - Build_MacCatalyst_x64_release_AllSubsets_Mono
- - Build_tvOS_arm64_release_AllSubsets_Mono
- - Build_tvOSSimulator_arm64_release_AllSubsets_Mono
- - Build_tvOSSimulator_x64_release_AllSubsets_Mono
+ - Build_Android_arm_release_Mono
+ - Build_Android_arm64_release_Mono
+ - Build_Android_x86_release_Mono
+ - Build_Android_x64_release_Mono
+ - Build_Browser_wasm_release_Mono
+ - Build_iOS_arm_release_Mono
+ - Build_iOS_arm64_release_Mono
+ - Build_iOSSimulator_x64_release_Mono
+ - Build_iOSSimulator_x86_release_Mono
+ - Build_iOSSimulator_arm64_release_Mono
+ - Build_MacCatalyst_arm64_release_Mono
+ - Build_MacCatalyst_x64_release_Mono
+ - Build_tvOS_arm64_release_Mono
+ - Build_tvOSSimulator_arm64_release_Mono
+ - Build_tvOSSimulator_x64_release_Mono
- Build_Windows_x64_release_CrossAOT_Mono
- - installer__coreclr__windows_x64_Release_
- - installer__coreclr__windows_x86_Release_
- - installer__coreclr__windows_arm_Release_
- - installer__coreclr__windows_arm64_Release_
+ - Build_windows_x64_release_CoreCLR
+ - Build_windows_x86_release_CoreCLR
+ - Build_windows_arm_release_CoreCLR
+ - Build_windows_arm64_release_CoreCLR
- ${{ if eq(variables.isOfficialBuild, true) }}:
- template: /eng/pipelines/official/stages/publish.yml
diff --git a/eng/pipelines/runtime-staging.yml b/eng/pipelines/runtime-staging.yml
index b18c09d903343a..2fe63b5812e1e8 100644
--- a/eng/pipelines/runtime-staging.yml
+++ b/eng/pipelines/runtime-staging.yml
@@ -88,16 +88,17 @@ jobs:
eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
eq(variables['isFullMatrix'], true))
# extra steps, run tests
- extraStepsTemplate: /eng/pipelines/libraries/helix.yml
- extraStepsParameters:
- creator: dotnet-bot
- interpreter: true
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
- condition: >-
- or(
- eq(variables['librariesContainsChange'], true),
- eq(variables['monoContainsChange'], true),
- eq(variables['isFullMatrix'], true))
+ postBuildSteps:
+ - template: /eng/pipelines/libraries/helix.yml
+ parameters:
+ creator: dotnet-bot
+ interpreter: true
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ condition: >-
+ or(
+ eq(variables['librariesContainsChange'], true),
+ eq(variables['monoContainsChange'], true),
+ eq(variables['isFullMatrix'], true))
#
# MacCatalyst interp - requires AOT Compilation and Interp flags
@@ -133,16 +134,17 @@ jobs:
eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
eq(variables['isFullMatrix'], true))
# extra steps, run tests
- extraStepsTemplate: /eng/pipelines/libraries/helix.yml
- extraStepsParameters:
- creator: dotnet-bot
- interpreter: true
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
- condition: >-
- or(
- eq(variables['librariesContainsChange'], true),
- eq(variables['monoContainsChange'], true),
- eq(variables['isFullMatrix'], true))
+ postBuildSteps:
+ - template: /eng/pipelines/libraries/helix.yml
+ parameters:
+ creator: dotnet-bot
+ interpreter: true
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ condition: >-
+ or(
+ eq(variables['librariesContainsChange'], true),
+ eq(variables['monoContainsChange'], true),
+ eq(variables['isFullMatrix'], true))
#
# MacCatalyst interp - requires AOT Compilation and Interp flags
@@ -177,16 +179,17 @@ jobs:
eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
eq(variables['isFullMatrix'], true))
# extra steps, run tests
- extraStepsTemplate: /eng/pipelines/libraries/helix.yml
- extraStepsParameters:
- creator: dotnet-bot
- interpreter: true
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
- condition: >-
- or(
- eq(variables['librariesContainsChange'], true),
- eq(variables['monoContainsChange'], true),
- eq(variables['isFullMatrix'], true))
+ postBuildSteps:
+ - template: /eng/pipelines/libraries/helix.yml
+ parameters:
+ creator: dotnet-bot
+ interpreter: true
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ condition: >-
+ or(
+ eq(variables['librariesContainsChange'], true),
+ eq(variables['monoContainsChange'], true),
+ eq(variables['isFullMatrix'], true))
#
# Build the whole product using Mono and run libraries tests
@@ -218,15 +221,16 @@ jobs:
eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
eq(variables['isFullMatrix'], true))
# extra steps, run tests
- extraStepsTemplate: /eng/pipelines/libraries/helix.yml
- extraStepsParameters:
- creator: dotnet-bot
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
- condition: >-
- or(
- eq(variables['librariesContainsChange'], true),
- eq(variables['monoContainsChange'], true),
- eq(variables['isFullMatrix'], true))
+ postBuildSteps:
+ - template: /eng/pipelines/libraries/helix.yml
+ parameters:
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ condition: >-
+ or(
+ eq(variables['librariesContainsChange'], true),
+ eq(variables['monoContainsChange'], true),
+ eq(variables['isFullMatrix'], true))
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
@@ -258,15 +262,16 @@ jobs:
# don't run tests on PRs until we can get significantly more devices
${{ if eq(variables['isFullMatrix'], true) }}:
# extra steps, run tests
- extraStepsTemplate: /eng/pipelines/libraries/helix.yml
- extraStepsParameters:
- creator: dotnet-bot
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
- condition: >-
- or(
- eq(variables['librariesContainsChange'], true),
- eq(variables['monoContainsChange'], true),
- eq(variables['isFullMatrix'], true))
+ postBuildSteps:
+ - template: /eng/pipelines/libraries/helix.yml
+ parameters:
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ condition: >-
+ or(
+ eq(variables['librariesContainsChange'], true),
+ eq(variables['monoContainsChange'], true),
+ eq(variables['isFullMatrix'], true))
#
# Build the whole product using Mono and run libraries tests
@@ -297,15 +302,16 @@ jobs:
eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
eq(variables['isFullMatrix'], true))
# extra steps, run tests
- extraStepsTemplate: /eng/pipelines/libraries/helix.yml
- extraStepsParameters:
- creator: dotnet-bot
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
- condition: >-
- or(
- eq(variables['librariesContainsChange'], true),
- eq(variables['monoContainsChange'], true),
- eq(variables['isFullMatrix'], true))
+ postBuildSteps:
+ - template: /eng/pipelines/libraries/helix.yml
+ parameters:
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ condition: >-
+ or(
+ eq(variables['librariesContainsChange'], true),
+ eq(variables['monoContainsChange'], true),
+ eq(variables['isFullMatrix'], true))
#
# Build the whole product using Mono for Android and run runtime tests with interpreter
@@ -341,10 +347,11 @@ jobs:
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
eq(variables['isFullMatrix'], true))
# extra steps, run tests
- extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml
- extraStepsParameters:
- creator: dotnet-bot
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ postBuildSteps:
+ - template: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml
+ parameters:
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
#
# Build the whole product using Mono and run runtime tests with the JIT.
@@ -383,10 +390,11 @@ jobs:
# successfully launch any tests. Re-enable once these issues have been fixed.
#
# extra steps, run tests
- # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml
- # extraStepsParameters:
- # creator: dotnet-bot
- # testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ # postBuildSteps:
+ # - template: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml
+ # parameters:
+ # creator: dotnet-bot
+ # testRunNamePrefixSuffix: Mono_$(_BuildConfig)
#
# Build the whole product using Mono for Android and run runtime tests with Android devices
@@ -423,10 +431,11 @@ jobs:
# don't run tests on PRs until we can get significantly more devices
${{ if eq(variables['isFullMatrix'], true) }}:
# extra steps, run tests
- extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml
- extraStepsParameters:
- creator: dotnet-bot
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ postBuildSteps:
+ - template: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml
+ parameters:
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
# Run disabled installer tests on Linux x64
- template: /eng/pipelines/common/platform-matrix.yml
@@ -473,19 +482,20 @@ jobs:
eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
eq(variables['isFullMatrix'], true))
# extra steps, run tests
- extraStepsTemplate: /eng/pipelines/libraries/helix.yml
- extraStepsParameters:
- creator: dotnet-bot
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
- extraHelixArguments: /p:BrowserHost=windows
- scenarios:
- - normal
- - wasmtestonbrowser
- condition: >-
- or(
- eq(variables['librariesContainsChange'], true),
- eq(variables['monoContainsChange'], true),
- eq(variables['isFullMatrix'], true))
+ postBuildSteps:
+ - template: /eng/pipelines/libraries/helix.yml
+ parameters:
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ extraHelixArguments: /p:BrowserHost=windows
+ scenarios:
+ - normal
+ - wasmtestonbrowser
+ condition: >-
+ or(
+ eq(variables['librariesContainsChange'], true),
+ eq(variables['monoContainsChange'], true),
+ eq(variables['isFullMatrix'], true))
#
# CoreCLR Build for running Apple Silicon libraries-innerloop
diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml
index b2a8dd83c50b2b..bfa1044e64bc75 100644
--- a/eng/pipelines/runtime.yml
+++ b/eng/pipelines/runtime.yml
@@ -146,21 +146,6 @@ jobs:
jobParameters:
testGroup: innerloop
-#
-# Build PGO CoreCLR release
-#
-- template: /eng/pipelines/common/platform-matrix.yml
- parameters:
- jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml
- buildConfig: release
- platforms:
- - windows_x64
- - windows_x86
- - Linux_x64
- jobParameters:
- testGroup: innerloop
- pgoType: 'PGO'
-
#
# Build CoreCLR Formatting Job
# Only when CoreCLR is changed, and only in the 'main' branch (no release branches;
@@ -196,6 +181,28 @@ jobs:
eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
eq(variables['isFullMatrix'], true))
+#
+# Build CrossDacs
+#
+- template: /eng/pipelines/common/platform-matrix.yml
+ parameters:
+ jobTemplate: /eng/pipelines/common/global-build-job.yml
+ buildConfig: release
+ platforms:
+ - windows_x64
+ variables:
+ - name: _archParameter
+ value: -arch x64,x86,arm,arm64
+ jobParameters:
+ buildArgs: -s linuxdac+alpinedac -c Checked,$(_BuildConfig)
+ nameSuffix: CrossDac
+ isOfficialBuild: false
+ timeoutInMinutes: 60
+ postBuildSteps:
+ - publish: $(Build.SourcesDirectory)/artifacts/bin/coreclr
+ displayName: Publish CrossDacs for diagnostics
+ artifact: CoreCLRCrossDacArtifacts
+
# Build Mono AOT offset headers once, for consumption elsewhere
# Only when mono changed
#
@@ -210,7 +217,7 @@ jobs:
- iOS_arm64
- MacCatalyst_x64
jobParameters:
- isOfficialBuild: ${{ variables.isOfficialBuild }}
+ isOfficialBuild: false
condition: >-
or(
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
@@ -292,18 +299,19 @@ jobs:
eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
eq(variables['isFullMatrix'], true))
# extra steps, run tests
- extraStepsTemplate: /eng/pipelines/libraries/helix.yml
- extraStepsParameters:
- creator: dotnet-bot
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
- scenarios:
- - normal
- - wasmtestonbrowser
- condition: >-
- or(
- eq(variables['librariesContainsChange'], true),
- eq(variables['monoContainsChange'], true),
- eq(variables['isFullMatrix'], true))
+ postBuildSteps:
+ - template: /eng/pipelines/libraries/helix.yml
+ parameters:
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ scenarios:
+ - normal
+ - wasmtestonbrowser
+ condition: >-
+ or(
+ eq(variables['librariesContainsChange'], true),
+ eq(variables['monoContainsChange'], true),
+ eq(variables['isFullMatrix'], true))
#
# Build the whole product using Mono and run libraries tests, for Wasm.Build.Tests
@@ -333,17 +341,18 @@ jobs:
eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
eq(variables['isFullMatrix'], true))
# extra steps, run tests
- extraStepsTemplate: /eng/pipelines/libraries/helix.yml
- extraStepsParameters:
- creator: dotnet-bot
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
- scenarios:
- - buildwasmapps
- condition: >-
- or(
- eq(variables['monoContainsChange'], true),
- eq(variables['installerContainsChange'], true),
- eq(variables['isFullMatrix'], true))
+ postBuildSteps:
+ - template: /eng/pipelines/libraries/helix.yml
+ parameters:
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ scenarios:
+ - buildwasmapps
+ condition: >-
+ or(
+ eq(variables['monoContainsChange'], true),
+ eq(variables['installerContainsChange'], true),
+ eq(variables['isFullMatrix'], true))
#
# Build for Browser/wasm, with EnableAggressiveTrimming=true
@@ -374,18 +383,19 @@ jobs:
eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
eq(variables['isFullMatrix'], true))
# extra steps, run tests
- extraStepsTemplate: /eng/pipelines/libraries/helix.yml
- extraStepsParameters:
- creator: dotnet-bot
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
- extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true
- scenarios:
- - normal
- condition: >-
- or(
- eq(variables['librariesContainsChange'], true),
- eq(variables['monoContainsChange'], true),
- eq(variables['isFullMatrix'], true))
+ postBuildSteps:
+ - template: /eng/pipelines/libraries/helix.yml
+ parameters:
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true
+ scenarios:
+ - normal
+ condition: >-
+ or(
+ eq(variables['librariesContainsChange'], true),
+ eq(variables['monoContainsChange'], true),
+ eq(variables['isFullMatrix'], true))
#
# Build for Browser/wasm with RunAOTCompilation=true
@@ -416,40 +426,19 @@ jobs:
eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
eq(variables['isFullMatrix'], true))
# extra steps, run tests
- extraStepsTemplate: /eng/pipelines/libraries/helix.yml
- extraStepsParameters:
- creator: dotnet-bot
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
- extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true
- scenarios:
- - normal
- condition: >-
- or(
- eq(variables['librariesContainsChange'], true),
- eq(variables['monoContainsChange'], true),
- eq(variables['isFullMatrix'], true))
-
-# Build and test libraries under single-file publishing
-- template: /eng/pipelines/common/platform-matrix.yml
- parameters:
- jobTemplate: /eng/pipelines/common/global-build-job.yml
- helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
- buildConfig: Release
- platforms:
- - windows_x64
- - Linux_x64
- jobParameters:
- testGroup: innerloop
- isFullMatrix: ${{ variables.isFullMatrix }}
- isSingleFile: true
- nameSuffix: SingleFile
- buildArgs: -s clr+libs+libs.tests -c $(_BuildConfig) /p:TestSingleFile=true /p:ArchiveTests=true
- timeoutInMinutes: 120
- # extra steps, run tests
- extraStepsTemplate: /eng/pipelines/libraries/helix.yml
- extraStepsParameters:
- creator: dotnet-bot
- testRunNamePrefixSuffix: SingleFile_$(_BuildConfig)
+ postBuildSteps:
+ - template: /eng/pipelines/libraries/helix.yml
+ parameters:
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ extraHelixArguments: /p:NeedsToBuildWasmAppsOnHelix=true
+ scenarios:
+ - normal
+ condition: >-
+ or(
+ eq(variables['librariesContainsChange'], true),
+ eq(variables['monoContainsChange'], true),
+ eq(variables['isFullMatrix'], true))
#
# Build the whole product using Mono and run runtime tests
@@ -484,10 +473,11 @@ jobs:
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
eq(variables['isFullMatrix'], true))
# extra steps, run tests
- extraStepsTemplate: /eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml
- extraStepsParameters:
- creator: dotnet-bot
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ postBuildSteps:
+ - template: /eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml
+ parameters:
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
#
# Build the whole product using Mono for Android and run runtime tests with Android emulator
@@ -522,10 +512,11 @@ jobs:
# eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
# eq(variables['isFullMatrix'], true))
# # extra steps, run tests
-# extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml
-# extraStepsParameters:
-# creator: dotnet-bot
-# testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+# postBuildSteps:
+# - template: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml
+# parameters:
+# creator: dotnet-bot
+# testRunNamePrefixSuffix: Mono_$(_BuildConfig)
#
# Build Mono and Installer on LLVMJIT mode
@@ -815,9 +806,12 @@ jobs:
eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
eq(variables['isFullMatrix'], true))
+#
+# Build and test libraries for .NET Framework
+#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
- jobTemplate: /eng/pipelines/libraries/build-job.yml
+ jobTemplate: /eng/pipelines/common/global-build-job.yml
buildConfig: Release
platforms:
- windows_x86
@@ -827,24 +821,33 @@ jobs:
jobParameters:
isFullMatrix: ${{ variables.isFullMatrix }}
framework: net48
- runTests: true
- testScope: innerloop
+ buildArgs: -s libs+libs.tests -framework net48 -c $(_BuildConfig) -testscope innerloop /p:ArchiveTests=true
+ nameSuffix: Libraries_NET48
+ timeoutInMinutes: 150
+ postBuildSteps:
+ - template: /eng/pipelines/libraries/helix.yml
+ parameters:
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: NET48_$(_BuildConfig)
+ extraHelixArguments: /p:BuildTargetFramework=net48
condition: >-
or(
eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
eq(variables['isFullMatrix'], true))
+#
+# Build and test libraries AllConfigurations
+#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
- jobTemplate: /eng/pipelines/libraries/build-job.yml
+ jobTemplate: /eng/pipelines/common/global-build-job.yml
buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
platforms:
- windows_x64
jobParameters:
- isFullMatrix: ${{ variables.isFullMatrix }}
- framework: allConfigurations
- runTests: true
- useHelix: false
+ buildArgs: -test -s libs+libs.tests -allConfigurations -c $(_BuildConfig) /p:TestAssemblies=false /p:TestPackages=true
+ nameSuffix: Libraries_AllConfigurations
+ timeoutInMinutes: 150
condition: >-
or(
eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
@@ -855,8 +858,9 @@ jobs:
# These are always built since they only take like 15 minutes
# we expect these to be done before we finish libraries or coreclr testing.
#
-- template: /eng/pipelines/installer/installer-matrix.yml
+- template: /eng/pipelines/common/platform-matrix.yml
parameters:
+ jobTemplate: /eng/pipelines/installer/jobs/base-job.yml
buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
platforms:
- Linux_arm
@@ -868,9 +872,15 @@ jobs:
jobParameters:
liveRuntimeBuildConfig: release
liveLibrariesBuildConfig: Release
+ runOnlyIfDependenciesSucceeded: true
+ condition:
+ or(
+ eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
+ eq(variables['isRollingBuild'], true))
-- template: /eng/pipelines/installer/installer-matrix.yml
+- template: /eng/pipelines/common/platform-matrix.yml
parameters:
+ jobTemplate: /eng/pipelines/installer/jobs/base-job.yml
buildConfig: Release
platforms:
- OSX_arm64
@@ -883,22 +893,11 @@ jobs:
jobParameters:
liveRuntimeBuildConfig: release
liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
-
-#
-# PGO Build
-#
-- template: /eng/pipelines/installer/installer-matrix.yml
- parameters:
- buildConfig: Release
- jobParameters:
- isOfficialBuild: ${{ variables.isOfficialBuild }}
- liveRuntimeBuildConfig: release
- liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
- pgoType: 'PGO'
- platforms:
- - windows_x64
- - windows_x86
- - Linux_x64
+ runOnlyIfDependenciesSucceeded: true
+ condition:
+ or(
+ eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true),
+ eq(variables['isRollingBuild'], true))
#
# CoreCLR Test builds using live libraries release build
diff --git a/eng/pipelines/runtimelab.yml b/eng/pipelines/runtimelab.yml
index db73445d799874..7fc478f09b1919 100644
--- a/eng/pipelines/runtimelab.yml
+++ b/eng/pipelines/runtimelab.yml
@@ -68,9 +68,10 @@ stages:
timeoutInMinutes: 100
testGroup: innerloop
buildArgs: -s clr+libs+host+packs -c debug -runtimeConfiguration Checked
- extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml
- extraStepsParameters:
- uploadRuntimeTests: true
+ postBuildSteps:
+ - template: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml
+ parameters:
+ uploadRuntimeTests: true
#
# Build with Release config and Release runtimeConfiguration
@@ -86,14 +87,15 @@ stages:
timeoutInMinutes: 100
isOfficialBuild: ${{ variables.isOfficialBuild }}
testGroup: innerloop
- extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml
- extraStepsParameters:
- uploadLibrariesTests: ${{ eq(variables.isOfficialBuild, false) }}
- uploadIntermediateArtifacts: false
- ${{ if eq(variables.isOfficialBuild, false) }}:
- buildArgs: -s clr+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true
- ${{ if eq(variables.isOfficialBuild, true) }}:
- buildArgs: -s clr+libs -c $(_BuildConfig)
+ postBuildSteps:
+ - template: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml
+ parameters:
+ uploadLibrariesTests: ${{ eq(variables.isOfficialBuild, false) }}
+ uploadIntermediateArtifacts: false
+ ${{ if eq(variables.isOfficialBuild, false) }}:
+ buildArgs: -s clr+libs+libs.tests+host+packs -c $(_BuildConfig) /p:ArchiveTests=true
+ ${{ if eq(variables.isOfficialBuild, true) }}:
+ buildArgs: -s clr+libs -c $(_BuildConfig)
#
# Build with Release allConfigurations to produce packages
@@ -110,16 +112,18 @@ stages:
nameSuffix: AllConfigurations
buildArgs: -s libs -c $(_BuildConfig) -allConfigurations
${{ if eq(variables.isOfficialBuild, true) }}:
- extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml
- extraStepsParameters:
- uploadIntermediateArtifacts: true
- isOfficialBuild: true
- librariesBinArtifactName: libraries_bin_official_allconfigurations
+ postBuildSteps:
+ - template: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml
+ parameters:
+ uploadIntermediateArtifacts: true
+ isOfficialBuild: true
+ librariesBinArtifactName: libraries_bin_official_allconfigurations
# Installer official builds need to build installers and need the libraries all configurations build
- ${{ if eq(variables.isOfficialBuild, true) }}:
- - template: /eng/pipelines/installer/installer-matrix.yml
+ - template: /eng/pipelines/common/platform-matrix.yml
parameters:
+ jobTemplate: /eng/pipelines/installer/jobs/base-job.yml
jobParameters:
liveRuntimeBuildConfig: Release
liveLibrariesBuildConfig: Release
diff --git a/eng/pipelines/runtimelab/runtimelab-post-build-steps.yml b/eng/pipelines/runtimelab/runtimelab-post-build-steps.yml
index a6187638cd3461..97c007ba4b3074 100644
--- a/eng/pipelines/runtimelab/runtimelab-post-build-steps.yml
+++ b/eng/pipelines/runtimelab/runtimelab-post-build-steps.yml
@@ -5,7 +5,6 @@ parameters:
osSubgroup: ''
nameSuffix: ''
platform: ''
- pgoType: ''
runtimeVariant: ''
librariesBinArtifactName: ''
isOfficialBuild: false
@@ -32,7 +31,7 @@ steps:
tarCompression: $(tarCompression)
includeRootFolder: false
archiveExtension: $(archiveExtension)
- artifactName: CoreCLRProduct_${{ parameters.pgoType }}_${{ parameters.runtimeVariant }}_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}
+ artifactName: CoreCLRProduct_${{ parameters.runtimeVariant }}_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}
displayName: 'CoreCLR product build'
# Zip Test Build
diff --git a/eng/testing/performance/performance-setup.ps1 b/eng/testing/performance/performance-setup.ps1
index ec5bd4859d3bee..a53f102f5d33e6 100644
--- a/eng/testing/performance/performance-setup.ps1
+++ b/eng/testing/performance/performance-setup.ps1
@@ -14,7 +14,7 @@ Param(
[string] $Kind="micro",
[switch] $LLVM,
[switch] $MonoInterpreter,
- [switch] $MonoAOT,
+ [switch] $MonoAOT,
[switch] $Internal,
[switch] $Compare,
[string] $MonoDotnet="",
@@ -44,12 +44,12 @@ $Queue = ""
if ($Internal) {
switch ($LogicalMachine) {
- "perftiger" { $Queue = "Windows.10.Amd64.19H1.Tiger.Perf" }
- "perftiger_crossgen" { $Queue = "Windows.10.Amd64.19H1.Tiger.Perf" }
- "perfowl" { $Queue = "Windows.10.Amd64.20H2.Owl.Perf" }
- "perfsurf" { $Queue = "Windows.10.Arm64.Perf.Surf" }
+ "perftiger" { $Queue = "Windows.11.Amd64.Tiger.Perf" }
+ "perftiger_crossgen" { $Queue = "Windows.11.Amd64.Tiger.Perf" }
+ "perfowl" { $Queue = "Windows.11.Amd64.Owl.Perf" }
+ "perfsurf" { $Queue = "Windows.11.Arm64.Surf.Perf" }
"perfpixel4a" { $Queue = "Windows.11.Amd64.Pixel.Perf" }
- Default { $Queue = "Windows.10.Amd64.19H1.Tiger.Perf" }
+ Default { $Queue = "Windows.11.Amd64.Tiger.Perf" }
}
$PerfLabArguments = "--upload-to-perflab-container"
$ExtraBenchmarkDotNetArguments = ""
@@ -121,7 +121,7 @@ elseif($FullPGO)
if ($RunFromPerformanceRepo) {
$SetupArguments = "--perf-hash $CommitSha $CommonSetupArguments"
-
+
robocopy $SourceDirectory $PerformanceDirectory /E /XD $PayloadDirectory $SourceDirectory\artifacts $SourceDirectory\.git
}
else {
@@ -202,4 +202,4 @@ Write-PipelineSetVariable -Name 'Queue' -Value "$Queue" -IsMultiJobVariable $fal
Write-PipelineSetVariable -Name 'HelixSourcePrefix' -Value "$HelixSourcePrefix" -IsMultiJobVariable $false
Write-PipelineSetVariable -Name '_BuildConfig' -Value "$Architecture.$Kind.$Framework" -IsMultiJobVariable $false
-exit 0
\ No newline at end of file
+exit 0
diff --git a/eng/testing/performance/performance-setup.sh b/eng/testing/performance/performance-setup.sh
index 781b3f50d3bca3..c13804d8239e47 100755
--- a/eng/testing/performance/performance-setup.sh
+++ b/eng/testing/performance/performance-setup.sh
@@ -162,7 +162,7 @@ while (($# > 0)); do
echo " --internal If the benchmarks are running as an official job."
echo " --monodotnet Pass the path to the mono dotnet for mono performance testing."
echo " --wasm Path to the unpacked wasm runtime pack."
- echo " --wasmaot Indicate wasm aot"
+ echo " --wasmaot Indicate wasm aot"
echo " --latestdotnet --dotnet-versions will not be specified. --dotnet-versions defaults to LKG version in global.json "
echo " --alpine Set for runs on Alpine"
echo ""
@@ -193,7 +193,7 @@ benchmark_directory=$payload_directory/BenchmarkDotNet
workitem_directory=$source_directory/workitem
extra_benchmark_dotnet_arguments="--iterationCount 1 --warmupCount 0 --invocationCount 1 --unrollFactor 1 --strategy ColdStart --stopOnFirstError true"
perflab_arguments=
-queue=Ubuntu.1804.Amd64.Open
+queue=Ubuntu.2204.Amd64.Open
creator=$BUILD_DEFINITIONNAME
helix_source_prefix="pr"
@@ -202,12 +202,12 @@ if [[ "$internal" == true ]]; then
helix_source_prefix="official"
creator=
extra_benchmark_dotnet_arguments=
-
+
if [[ "$architecture" = "arm64" ]]; then
- queue=Ubuntu.1804.Arm64.Perf
+ queue=Ubuntu.2204.Arm64.Perf
else
if [[ "$logical_machine" = "perfowl" ]]; then
- queue=Ubuntu.1804.Amd64.Owl.Perf
+ queue=Ubuntu.2204.Amd64.Owl.Perf
elif [[ "$logical_machine" == "perftiger_crossgen" ]]; then
queue=Ubuntu.1804.Amd64.Tiger.Perf
else
@@ -222,7 +222,7 @@ else
if [[ "$architecture" = "arm64" ]]; then
queue=ubuntu.1804.armarch.open
else
- queue=Ubuntu.1804.Amd64.Open
+ queue=Ubuntu.2204.Amd64.Open
fi
if [[ "$alpine" = "true" ]]; then
@@ -293,7 +293,7 @@ if [[ "$wasm_runtime_loc" != "" ]]; then
rsync -a --progress $wasm_dotnet_path/artifacts/BrowserWasm/artifacts/* $wasm_dotnet_path/artifacts
rm -r $wasm_dotnet_path/artifacts/BrowserWasm/artifacts
if [[ "$wasmaot" == "true" ]]; then
- extra_benchmark_dotnet_arguments="$extra_benchmark_dotnet_arguments --wasmEngine /home/helixbot/.jsvu/$javascript_engine --runtimeSrcDir \$HELIX_CORRELATION_PAYLOAD/dotnet-wasm --aotcompilermode wasm --buildTimeout 3600"
+ extra_benchmark_dotnet_arguments="$extra_benchmark_dotnet_arguments --wasmEngine /home/helixbot/.jsvu/$javascript_engine --runtimeSrcDir \$HELIX_CORRELATION_PAYLOAD/dotnet-wasm --aotcompilermode wasm --buildTimeout 3600"
else
extra_benchmark_dotnet_arguments="$extra_benchmark_dotnet_arguments --wasmEngine /home/helixbot/.jsvu/$javascript_engine --runtimeSrcDir \$HELIX_CORRELATION_PAYLOAD/dotnet-wasm"
fi
diff --git a/src/coreclr/build-runtime.cmd b/src/coreclr/build-runtime.cmd
index ab805f370aa209..97c1854c43663f 100644
--- a/src/coreclr/build-runtime.cmd
+++ b/src/coreclr/build-runtime.cmd
@@ -246,8 +246,13 @@ if NOT "%__BuildType%"=="Release" (
set __PgoOptimize=0
)
-set "__BinDir=%__RootBinDir%\bin\coreclr\%__TargetOS%.%__BuildArch%.%__BuildType%"
-set "__IntermediatesDir=%__RootBinDir%\obj\coreclr\%__TargetOS%.%__BuildArch%.%__BuildType%"
+set __TargetOSDirName=%__TargetOS%
+if "%__TargetOS%"=="alpine" (
+ set __TargetOSDirName=linux_musl
+)
+
+set "__BinDir=%__RootBinDir%\bin\coreclr\%__TargetOSDirName%.%__BuildArch%.%__BuildType%"
+set "__IntermediatesDir=%__RootBinDir%\obj\coreclr\%__TargetOSDirName%.%__BuildArch%.%__BuildType%"
set "__LogsDir=%__RootBinDir%\log\!__BuildType!"
set "__MsbuildDebugLogsDir=%__LogsDir%\MsbuildDebugLogs"
set "__ArtifactsIntermediatesDir=%__RepoRootDir%\artifacts\obj\coreclr\"
diff --git a/src/coreclr/pal/src/include/pal/palinternal.h b/src/coreclr/pal/src/include/pal/palinternal.h
index 4c7644db9ebe96..3fc42942be695d 100644
--- a/src/coreclr/pal/src/include/pal/palinternal.h
+++ b/src/coreclr/pal/src/include/pal/palinternal.h
@@ -430,6 +430,7 @@ function_name() to call the system's implementation
#undef va_list
#undef va_start
#undef va_end
+#undef va_arg
#undef va_copy
#undef stdin
#undef stdout
diff --git a/src/installer/managed/Microsoft.NET.HostModel/Microsoft.NET.HostModel.csproj b/src/installer/managed/Microsoft.NET.HostModel/Microsoft.NET.HostModel.csproj
index 64ac366ee39023..49cea05ae7d822 100644
--- a/src/installer/managed/Microsoft.NET.HostModel/Microsoft.NET.HostModel.csproj
+++ b/src/installer/managed/Microsoft.NET.HostModel/Microsoft.NET.HostModel.csproj
@@ -4,7 +4,7 @@
netstandard2.0
Abstractions for modifying .NET host binaries
false
- true
+ true
true
true
true
@@ -15,7 +15,6 @@
MicrosoftAspNetCore
true
- Microsoft.Net.HostModel.PGO
diff --git a/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Host.sfxproj b/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Host.sfxproj
index 0fc6d8a05bfb95..b0b9f8050273f1 100644
--- a/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Host.sfxproj
+++ b/src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Host.sfxproj
@@ -8,7 +8,7 @@
dotnet-apphost-pack
dotnet-apphost-pack
NetCore.AppHostPack
- $(SharedFrameworkName).PGO
+ false