diff --git a/eng/pipelines/common/variables.yml b/eng/pipelines/common/variables.yml index 4ce7a43f1e3eb..827cb81ab5e1a 100644 --- a/eng/pipelines/common/variables.yml +++ b/eng/pipelines/common/variables.yml @@ -1,3 +1,10 @@ variables: - name: isOfficialBuild - value: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }} + value: ${{ and(ne(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }} +- name: isFullMatrix + value: ${{ and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }} +- name: debugOnPrReleaseOnRolling + ${{ if ne(variables['Build.Reason'], 'PullRequest') }}: + value: Release + ${{ if eq(variables['Build.Reason'], 'PullRequest') }}: + value: Debug \ No newline at end of file diff --git a/eng/pipelines/common/xplat-setup.yml b/eng/pipelines/common/xplat-setup.yml index 6c293eeaec6df..e799ba9078778 100644 --- a/eng/pipelines/common/xplat-setup.yml +++ b/eng/pipelines/common/xplat-setup.yml @@ -12,13 +12,6 @@ jobs: - template: ${{ coalesce(parameters.helixQueuesTemplate, parameters.jobTemplate) }} parameters: variables: - - name: _containsCoreClrChange - value: $[ dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'] ] - - name: _containsLibrariesChange - value: $[ dependencies.checkout.outputs['SetPathVars_libraries.containsChange'] ] - - name: _containsInstallerChange - value: $[ dependencies.checkout.outputs['SetPathVars_installer.containsChange'] ] - - ${{ if eq(parameters.osGroup, 'Windows_NT') }}: - name: archiveExtension value: '.zip' diff --git a/eng/pipelines/coreclr/pr.yml b/eng/pipelines/coreclr/pr.yml deleted file mode 100644 index 2d915f8da2e19..0000000000000 --- a/eng/pipelines/coreclr/pr.yml +++ /dev/null @@ -1,216 +0,0 @@ -trigger: none - -pr: - branches: - include: - - master - - release/*.* - paths: - include: - - '*' - - src/libraries/System.Private.CoreLib/* - exclude: - - docs/* - - CODE-OF-CONDUCT.md - - CONTRIBUTING.md - - LICENSE.TXT - - PATENTS.TXT - - README.md - - SECURITY.md - - THIRD-PARTY-NOTICES.TXT - - src/installer/* - - src/libraries/* - - eng/pipelines/installer/* - - eng/pipelines/libraries/* - - eng/pipelines/runtime.yml - -jobs: -# -# Checkout repository -# -- template: /eng/pipelines/common/checkout-job.yml - -# -# Debug builds -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: debug - platforms: - - Windows_NT_x64 - - Windows_NT_x86 - jobParameters: - testGroup: innerloop - -# -# Checked builds -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - Linux_arm - - Linux_arm64 - - Linux_musl_x64 - - Linux_x64 - - OSX_x64 - - Windows_NT_arm - - Windows_NT_arm64 - - Windows_NT_x64 - - Windows_NT_x86 - jobParameters: - testGroup: innerloop - -# -# Release builds -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: release - platforms: - - Linux_arm64 - - Linux_musl_x64 - - OSX_x64 - - Windows_NT_arm - - Windows_NT_arm64 - - Windows_NT_x64 - jobParameters: - testGroup: innerloop - -# -# Release library builds -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - Linux_arm - - Linux_arm64 - - Linux_musl_x64 - - Linux_x64 - - OSX_x64 - - Windows_NT_arm - - Windows_NT_arm64 - - Windows_NT_x64 - - Windows_NT_x86 - jobParameters: - isOfficialBuild: false - liveCoreClrBuildConfig: checked - -# -# Checked test builds -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-test-job.yml - buildConfig: checked - platforms: - - Linux_arm - - Linux_arm64 - - OSX_x64 - - Windows_NT_arm - - Windows_NT_arm64 - - Windows_NT_x64 - - Windows_NT_x86 - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: Release - -# -# Checked JIT test executions -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml - buildConfig: checked - platforms: - - Linux_arm - - Linux_arm64 - - Linux_musl_x64 - - Linux_x64 - - OSX_x64 - # - Windows_NT_arm return this when https://github.com/dotnet/runtime/issues/1097 is fixed. - - Windows_NT_arm64 - - Windows_NT_x64 - - Windows_NT_x86 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: Release - -# -# Checked R2R test executions -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml - buildConfig: checked - platforms: - - Linux_x64 - - OSX_x64 - - Windows_NT_x64 - - Windows_NT_x86 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - readyToRun: true - displayNameArgs: R2R - liveLibrariesBuildConfig: Release - -# -# Crossgen-comparison jobs -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/crossgen-comparison-job.yml - buildConfig: checked - platforms: - # - Linux_arm Return this when https://github.com/dotnet/runtime/issues/1282 is fixed. - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - liveLibrariesBuildConfig: Release - -# -# Release test builds -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-test-job.yml - buildConfig: release - platforms: - - OSX_x64 - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: Release - -# -# Release test builds -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml - buildConfig: release - platforms: - - Linux_musl_x64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: Release - -# -# Formatting -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml - platforms: - - Linux_x64 - - Windows_NT_x64 diff --git a/eng/pipelines/coreclr/templates/build-job.yml b/eng/pipelines/coreclr/templates/build-job.yml index 45278faac880c..ff36d2a55bfd9 100644 --- a/eng/pipelines/coreclr/templates/build-job.yml +++ b/eng/pipelines/coreclr/templates/build-job.yml @@ -14,6 +14,7 @@ parameters: variables: {} pool: '' isOfficialBuild: false + condition: true ### Product build jobs: @@ -29,6 +30,7 @@ jobs: enableMicrobuild: true stagedBuild: ${{ parameters.stagedBuild }} pool: ${{ parameters.pool }} + condition: ${{ parameters.condition }} # Compute job name from template parameters name: ${{ format('coreclr_product_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} diff --git a/eng/pipelines/coreclr/templates/format-job.yml b/eng/pipelines/coreclr/templates/format-job.yml index dcab1ea844f10..740585c6dfc61 100644 --- a/eng/pipelines/coreclr/templates/format-job.yml +++ b/eng/pipelines/coreclr/templates/format-job.yml @@ -9,6 +9,7 @@ parameters: stagedBuild: false variables: {} pool: '' + condition: true ### Format job jobs: @@ -27,6 +28,7 @@ jobs: helixType: 'format' pool: ${{ parameters.pool }} variables: ${{ parameters.variables }} + condition: ${{ parameters.condition }} steps: - task: UseDotNet@2 # This should match what jitutils YML uses to build. diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml index 6bf60ec98008c..4ed32f809f39b 100644 --- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml +++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml @@ -32,7 +32,7 @@ jobs: - ${{ if eq(parameters.platform, 'Linux_arm64') }}: - ${{ if eq(variables['System.TeamProject'], 'public') }}: - (Ubuntu.1804.Arm64.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm64v8-a45aeeb-20190620155855 - - ${{ if and(eq(variables['System.TeamProject'], 'public'), notIn(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'corefx')) }}: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), notIn(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'libraries')) }}: - (Debian.9.Arm64.Open)Ubuntu.1804.Armarch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-9-helix-arm64v8-74c9941-20190620155840 - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - (Debian.9.Arm64)Ubuntu.1804.ArmArch@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-9-helix-arm64v8-74c9941-20190620155840 @@ -56,9 +56,9 @@ jobs: # Linux x64 - ${{ if eq(parameters.platform, 'Linux_x64') }}: - - ${{ if and(eq(variables['System.TeamProject'], 'public'), in(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'corefx')) }}: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), in(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'libraries')) }}: - Ubuntu.1804.Amd64.Open - - ${{ if and(eq(variables['System.TeamProject'], 'public'), notIn(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'corefx')) }}: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), notIn(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'libraries')) }}: - Debian.9.Amd64.Open - Ubuntu.1604.Amd64.Open - Ubuntu.1804.Amd64.Open @@ -74,9 +74,9 @@ jobs: # OSX x64 - ${{ if eq(parameters.platform, 'OSX_x64') }}: - - ${{ if and(eq(variables['System.TeamProject'], 'public'), in(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'corefx')) }}: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), in(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'libraries')) }}: - OSX.1013.Amd64.Open - - ${{ if and(eq(variables['System.TeamProject'], 'public'), notIn(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'corefx')) }}: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), notIn(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'libraries')) }}: - OSX.1013.Amd64.Open - OSX.1014.Amd64.Open - ${{ if eq(variables['System.TeamProject'], 'internal') }}: @@ -85,9 +85,9 @@ jobs: # Windows_NT x64 - ${{ if eq(parameters.platform, 'Windows_NT_x64') }}: - - ${{ if and(eq(variables['System.TeamProject'], 'public'), in(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'corefx')) }}: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), in(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'libraries')) }}: - Windows.10.Amd64.Open - - ${{ if and(eq(variables['System.TeamProject'], 'public'), notIn(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'corefx')) }}: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), notIn(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'libraries')) }}: - (Windows.Nano.1809.Amd64.Open)windows.10.amd64.serverrs5.open@mcr.microsoft.com/dotnet-buildtools/prereqs:nanoserver-1809-helix-amd64-61052b7-20190723211353 - Windows.7.Amd64.Open - Windows.81.Amd64.Open @@ -101,9 +101,9 @@ jobs: # Windows_NT x86 - ${{ if eq(parameters.platform, 'Windows_NT_x86') }}: - - ${{ if and(eq(variables['System.TeamProject'], 'public'), in(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'corefx')) }}: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), in(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'libraries')) }}: - Windows.10.Amd64.Open - - ${{ if and(eq(variables['System.TeamProject'], 'public'), notIn(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'corefx')) }}: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), notIn(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'libraries')) }}: - Windows.7.Amd64.Open - Windows.81.Amd64.Open - Windows.10.Amd64.Open @@ -119,8 +119,8 @@ jobs: # https://github.com/dotnet/runtime/issues/1097 # https://github.com/dotnet/runtime/issues/1663 # https://github.com/dotnet/core-eng/issues/8490 - # - ${{ if and(eq(variables['System.TeamProject'], 'public'), in(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'corefx')) }}: - # - Windows.10.Arm64.Open + # - ${{ if and(eq(variables['System.TeamProject'], 'public'), in(parameters.jobParameters.helixQueueGroup, 'pr', 'ci', 'libraries')) }}: + # - Windows.10.Arm64.Open - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - Windows.10.Arm64 diff --git a/eng/pipelines/coreclr/templates/run-test-job.yml b/eng/pipelines/coreclr/templates/run-test-job.yml index a5db125e48e02..1fcb58c0f41d5 100644 --- a/eng/pipelines/coreclr/templates/run-test-job.yml +++ b/eng/pipelines/coreclr/templates/run-test-job.yml @@ -43,6 +43,7 @@ jobs: liveLibrariesBuildConfig: ${{ parameters.liveLibrariesBuildConfig }} helixType: 'build/tests/' pool: ${{ parameters.pool }} + condition: ${{ parameters.condition }} # Test jobs should continue on error for internal builds ${{ if eq(variables['System.TeamProject'], 'internal') }}: diff --git a/eng/pipelines/coreclr/templates/xplat-pipeline-job.yml b/eng/pipelines/coreclr/templates/xplat-pipeline-job.yml index 58a89ddcefc8b..ae418ed1533e7 100644 --- a/eng/pipelines/coreclr/templates/xplat-pipeline-job.yml +++ b/eng/pipelines/coreclr/templates/xplat-pipeline-job.yml @@ -17,7 +17,7 @@ parameters: pool: '' # arcade-specific parameters - condition: '' + condition: true continueOnError: false dependsOn: '' displayName: '' @@ -43,7 +43,7 @@ jobs: pool: ${{ parameters.pool }} # arcade-specific parameters - condition: ${{ parameters.condition }} + condition: and(succeeded(), ${{ parameters.condition }}) continueOnError: ${{ parameters.continueOnError }} dependsOn: ${{ parameters.dependsOn }} displayName: ${{ parameters.displayName }} diff --git a/eng/pipelines/installer/azure-pipelines.yml b/eng/pipelines/installer/azure-pipelines.yml deleted file mode 100644 index 5b515b5f042ef..0000000000000 --- a/eng/pipelines/installer/azure-pipelines.yml +++ /dev/null @@ -1,91 +0,0 @@ -trigger: - branches: - include: - - master - - release/*.* - paths: - include: - - '*' - - docs/manpages/* - exclude: - - src/coreclr/* - - src/libraries/* - - eng/pipelines/coreclr/* - - eng/pipelines/libraries/* - - eng/pipelines/common/* - - eng/pipelines/runtime.yml - - docs/* - - README.md - - CONTRIBUTING.md - - LICENSE.TXT - - THIRD-PARTY-NOTICES.TXT - -pr: - branches: - include: - - master - - release/*.* - paths: - include: - - '*' - - docs/manpages/* - exclude: - - src/coreclr/* - - src/libraries/* - - eng/pipelines/coreclr/* - - eng/pipelines/libraries/* - - eng/pipelines/common/* - - eng/pipelines/runtime.yml - - docs/* - - README.md - - CONTRIBUTING.md - - LICENSE.TXT - - THIRD-PARTY-NOTICES.TXT - -name: $(Date:yyyyMMdd)$(Rev:.r) - -jobs: -# -# Checkout repository -# -- template: /eng/pipelines/common/checkout-job.yml - -# -# Build and Test -# -- template: /eng/pipelines/common/platform-matrix-multijob.yml - parameters: - platforms: - - OSX_x64 - - Linux_arm - - Linux_arm64 - - Linux_musl_arm64 - - Linux_musl_x64 - - Linux_x64 - - Windows_NT_x86 - - Windows_NT_x64 - - Windows_NT_arm - - Windows_NT_arm64 - jobTemplates: - - - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: release - jobParameters: - testGroup: innerloop - - - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - jobParameters: - liveCoreClrBuildConfig: release - - - jobTemplate: /eng/pipelines/installer/jobs/base-job.yml - buildConfig: Release - jobParameters: - liveCoreClrBuildConfig: release - liveLibrariesBuildConfig: Release - - - jobTemplate: /eng/pipelines/installer/jobs/base-job.yml - buildConfig: Debug - jobParameters: - liveCoreClrBuildConfig: release - liveLibrariesBuildConfig: Release diff --git a/eng/pipelines/installer/installer-matrix.yml b/eng/pipelines/installer/installer-matrix.yml index 53811c1425998..131ad244583bc 100644 --- a/eng/pipelines/installer/installer-matrix.yml +++ b/eng/pipelines/installer/installer-matrix.yml @@ -1,6 +1,7 @@ parameters: platforms: [] jobParameters: [] + buildConfig: Release jobs: @@ -10,7 +11,7 @@ jobs: - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/installer/jobs/base-job.yml - buildConfig: Release + buildConfig: ${{ parameters.buildConfig }} platforms: ${{ parameters.platforms }} passPlatforms: true jobParameters: diff --git a/eng/pipelines/libraries/.azure-ci.yml b/eng/pipelines/libraries/.azure-ci.yml deleted file mode 100644 index d034eb5bf3be2..0000000000000 --- a/eng/pipelines/libraries/.azure-ci.yml +++ /dev/null @@ -1,179 +0,0 @@ -# Setting batch to true, triggers one build at a time. -# if there is a push while a build in progress, it will wait, -# until the running build finishes, and produce a build with all the changes -# that happened during the last build. -trigger: - batch: true - branches: - include: - - master - - release/*.* - paths: - exclude: - - docs/* - - CODE-OF-CONDUCT.md - - CONTRIBUTING.md - - LICENSE.TXT - - PATENTS.TXT - - README.md - - SECURITY.md - - THIRD-PARTY-NOTICES.TXT - - src/installer/* - - src/coreclr/* - - eng/pipelines/coreclr/* - - eng/pipelines/installer/* - - eng/pipelines/runtime.yml - -pr: - branches: - include: - - master - - release/*.* - paths: - exclude: - - docs/* - - CODE-OF-CONDUCT.md - - CONTRIBUTING.md - - LICENSE.TXT - - PATENTS.TXT - - README.md - - SECURITY.md - - THIRD-PARTY-NOTICES.TXT - - src/installer/* - - src/coreclr/* - - eng/pipelines/coreclr/* - - eng/pipelines/installer/* - -variables: - - template: variables.yml - - - ${{ if and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}: - - group: DotNet-Blob-Feed - - group: corefx-sdl-validation - - name: _dotnetFeedUrl - value: https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json - - name: _PublishUsingPipelines - value: true - - name: _DotNetArtifactsCategory - value: .NETCore - - name: _DotNetValidationArtifactsCategory - value: .NETCore - -jobs: - - template: /eng/pipelines/common/checkout-job.yml - - # - # CoreCLR builds. - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: release - platforms: - - OSX_x64 - - Windows_NT_x64 - - Windows_NT_x86 - - Linux_x64 - - Linux_arm - - Linux_arm64 - - Linux_musl_x64 - - Linux_musl_arm64 - jobParameters: - testGroup: innerloop - - # - # Libraries builds. - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - Windows_NT_x86 - - ${{ if eq(variables['isFullMatrix'], true) }}: - - OSX_x64 - - Windows_NT_x64 - - Linux_x64 - - Linux_arm - - Linux_arm64 - - Linux_musl_x64 - - Linux_musl_arm64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: ${{ variables['isOfficialBuild'] }} - isFullMatrix: ${{ variables['isFullMatrix'] }} - framework: netcoreapp - ${{ if eq(variables['isOfficialBuild'], false) }}: - runTests: true - testScope: innerloop - liveCoreClrBuildConfig: release - - - ${{ if eq(variables['isFullMatrix'], false) }}: - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Debug - platforms: - - Windows_NT_x64 - - OSX_x64 - - Linux_x64 - - Linux_musl_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: ${{ variables['isOfficialBuild'] }} - isFullMatrix: ${{ variables['isFullMatrix'] }} - testScope: innerloop - framework: netcoreapp - runTests: true - liveCoreClrBuildConfig: release - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - ${{ if eq(variables['isFullMatrix'], false) }}: - buildConfig: Debug - ${{ if eq(variables['isFullMatrix'], true) }}: - buildConfig: Release - platforms: - - WebAssembly_wasm - - ${{ if eq(variables['isFullMatrix'], false) }}: - - Linux_arm - - Linux_arm64 - - Linux_musl_arm64 - jobParameters: - isOfficialBuild: ${{ variables['isOfficialBuild'] }} - framework: netcoreapp - liveCoreClrBuildConfig: release - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - Windows_NT_x86 - - ${{ if eq(variables['isFullMatrix'], true) }}: - - Windows_NT_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: ${{ variables['isOfficialBuild'] }} - framework: netfx - ${{ if eq(variables['isOfficialBuild'], false) }}: - runTests: true - testScope: innerloop - - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - ${{ if eq(variables['isFullMatrix'], false) }}: - buildConfig: Debug - ${{ if eq(variables['isFullMatrix'], true) }}: - buildConfig: Release - platforms: - - Windows_NT_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: ${{ variables['isOfficialBuild'] }} - framework: allConfigurations - liveCoreClrBuildConfig: release - ${{ if eq(variables['isOfficialBuild'], false) }}: - runTests: true diff --git a/eng/pipelines/libraries/base-job.yml b/eng/pipelines/libraries/base-job.yml index bba59214aa6b3..45380e41c308e 100644 --- a/eng/pipelines/libraries/base-job.yml +++ b/eng/pipelines/libraries/base-job.yml @@ -45,7 +45,6 @@ jobs: - _testScopeArg: '' - librariesBuildArtifactName: ${{ format('libraries_bin_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} - - librariesTestsArtifactName: ${{ format('libraries_test_assets_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} - ${{ if ne(parameters.testScope, '') }}: - _testScopeArg: -testscope ${{ parameters.testScope }} diff --git a/eng/pipelines/libraries/build-job.yml b/eng/pipelines/libraries/build-job.yml index 9b1395a68cfa8..01a4594ef804a 100644 --- a/eng/pipelines/libraries/build-job.yml +++ b/eng/pipelines/libraries/build-job.yml @@ -17,6 +17,7 @@ parameters: timeoutInMinutes: 150 preBuildSteps: [] container: '' + condition: true variables: {} pool: '' runTests: false @@ -36,6 +37,7 @@ jobs: timeoutInMinutes: ${{ parameters.timeoutInMinutes }} preBuildSteps: ${{ parameters.preBuildSteps }} container: ${{ parameters.container }} + condition: ${{ parameters.condition }} pool: ${{ parameters.pool }} testScope: ${{ parameters.testScope }} name: build @@ -62,9 +64,6 @@ jobs: - ${{ parameters.variables }} steps: - - script: $(_buildScript) -restore $(_buildArguments) $(_skipTestRestoreArg) - displayName: Restore - # TODO: (Consolidation) Fix internal tool restore and re-enable. https://github.com/dotnet/runtime/issues/1024 # - ${{ if eq(parameters.isOfficialBuild, true) }}: # - task: DotNetCoreCLI@2 @@ -97,6 +96,9 @@ jobs: ./emsdk activate --embedded ${EMSCRIPTEN_VERSION}-upstream displayName: Install Emscripten + - script: $(_buildScript) -restore $(_buildArguments) $(_skipTestRestoreArg) + displayName: Restore + - script: $(_buildScript) $(_buildAction) $(_buildArguments) diff --git a/eng/pipelines/libraries/build-test-job.yml b/eng/pipelines/libraries/build-test-job.yml index c7e9a22aadeb8..813db155d78cc 100644 --- a/eng/pipelines/libraries/build-test-job.yml +++ b/eng/pipelines/libraries/build-test-job.yml @@ -37,6 +37,7 @@ jobs: - ${{ format('libraries_build_{0}_{1}{2}_{3}_{4}', parameters.framework, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} variables: + - librariesTestsArtifactName: ${{ format('libraries_test_assets_{0}_{1}_{2}', parameters.osGroup, parameters.archType, parameters.buildConfig) }} - _archiveTestsParameter: /p:ArchiveTests=true - _skipTestRestoreArg: /p:SkipTestRestore=false diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml index e76f2892fac7f..593d6b27d7b4b 100644 --- a/eng/pipelines/libraries/helix-queues-setup.yml +++ b/eng/pipelines/libraries/helix-queues-setup.yml @@ -23,27 +23,27 @@ jobs: # Linux arm - ${{ if eq(parameters.platform, 'Linux_arm') }}: - ${{ if eq(parameters.jobParameters.isFullMatrix, true) }}: - - \(Debian.9.Arm32.Open\)Ubuntu.1804.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-9-helix-arm32v7-74c9941-20190620155841 + - (Debian.9.Arm32.Open)Ubuntu.1804.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-9-helix-arm32v7-74c9941-20190620155841 # Linux arm64 - ${{ if eq(parameters.platform, 'Linux_arm64') }}: - ${{ if eq(parameters.jobParameters.isFullMatrix, true) }}: - - \(Ubuntu.1804.ArmArch.Open\)Ubuntu.1804.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-helix-arm64v8-a45aeeb-20190620160300 + - (Ubuntu.1804.ArmArch.Open)Ubuntu.1804.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-helix-arm64v8-a45aeeb-20190620160300 # Linux musl x64 - ${{ if eq(parameters.platform, 'Linux_musl_x64') }}: - ${{ if eq(parameters.jobParameters.isFullMatrix, false) }}: - - \(Alpine.311.Amd64.Open\)ubuntu.1604.amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.11-helix-08e8e40-20200107182408 + - (Alpine.311.Amd64.Open)ubuntu.1604.amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.11-helix-08e8e40-20200107182408 - ${{ if eq(parameters.jobParameters.isFullMatrix, true) }}: - - \(Alpine.38.Amd64.Open\)ubuntu.1604.amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.8-helix-09ca40b-20190620184125 - - \(Alpine.39.Amd64.Open\)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-helix-09ca40b-20190620184719 - - \(Alpine.310.Amd64.Open\)ubuntu.1604.amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.10-helix-3043688-20190918214010 - - \(Alpine.311.Amd64.Open\)ubuntu.1604.amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.11-helix-08e8e40-20200107182408 + - (Alpine.38.Amd64.Open)ubuntu.1604.amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.8-helix-09ca40b-20190620184125 + - (Alpine.39.Amd64.Open)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-helix-09ca40b-20190620184719 + - (Alpine.310.Amd64.Open)ubuntu.1604.amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.10-helix-3043688-20190918214010 + - (Alpine.311.Amd64.Open)ubuntu.1604.amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.11-helix-08e8e40-20200107182408 # Linux musl arm64 - ${{ if eq(parameters.platform, 'Linux_musl_arm64') }}: - ${{ if eq(parameters.jobParameters.isFullMatrix, true) }}: - - \(Alpine.38.Arm64.Open\)Ubuntu.1804.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.8-helix-arm64v8-a45aeeb-20190620184035 + - (Alpine.38.Arm64.Open)Ubuntu.1804.ArmArch.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.8-helix-arm64v8-a45aeeb-20190620184035 # Linux x64 - ${{ if eq(parameters.platform, 'Linux_x64') }}: @@ -55,9 +55,9 @@ jobs: - Ubuntu.1804.Amd64.Open - SLES.12.Amd64.Open - SLES.15.Amd64.Open - - \(Fedora.29.Amd64.Open\)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-29-helix-09ca40b-20190508143249 - - \(Ubuntu.1910.Amd64.Open\)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-19.10-helix-amd64-cfcfd50-20191030180623 - - \(Debian.10.Amd64.Open\)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-10-helix-amd64-7c6abd3-20190620155928 + - (Fedora.29.Amd64.Open)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-29-helix-09ca40b-20190508143249 + - (Ubuntu.1910.Amd64.Open)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-19.10-helix-amd64-cfcfd50-20191030180623 + - (Debian.10.Amd64.Open)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-10-helix-amd64-7c6abd3-20190620155928 - ${{ if eq(parameters.jobParameters.isFullMatrix, false) }}: - Centos.7.Amd64.Open - RedHat.7.Amd64.Open @@ -65,7 +65,7 @@ jobs: - Ubuntu.1604.Amd64.Open - Ubuntu.1804.Amd64.Open - SLES.15.Amd64.Open - - \(Fedora.29.Amd64.Open\)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-29-helix-09ca40b-20190508143249 + - (Fedora.29.Amd64.Open)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-29-helix-09ca40b-20190508143249 # OSX x64 - ${{ if eq(parameters.platform, 'OSX_x64') }}: @@ -81,12 +81,12 @@ jobs: - Windows.81.Amd64.Open - Windows.10.Amd64.ServerRS5.Open - Windows.10.Amd64.Server19H1.Open - - "`(Windows.Nano.1809.Amd64.Open`)windows.10.amd64.serverrs5.open@mcr.microsoft.com/dotnet-buildtools/prereqs:nanoserver-1809-helix-amd64-61052b7-20190723211353" + - (Windows.Nano.1809.Amd64.Open)windows.10.amd64.serverrs5.open@mcr.microsoft.com/dotnet-buildtools/prereqs:nanoserver-1809-helix-amd64-61052b7-20190723211353 - ${{ if eq(parameters.jobParameters.isFullMatrix, false) }}: - Windows.7.Amd64.Open - Windows.81.Amd64.Open - Windows.10.Amd64.Server19H1.ES.Open - - "`(Windows.Nano.1809.Amd64.Open`)windows.10.amd64.serverrs5.open@mcr.microsoft.com/dotnet-buildtools/prereqs:nanoserver-1809-helix-amd64-61052b7-20190723211353" + - (Windows.Nano.1809.Amd64.Open)windows.10.amd64.serverrs5.open@mcr.microsoft.com/dotnet-buildtools/prereqs:nanoserver-1809-helix-amd64-61052b7-20190723211353 # NETFX - ${{ if eq(parameters.jobParameters.framework, 'netfx') }}: @@ -106,9 +106,12 @@ jobs: - Windows.10.Amd64.ServerRS5.Open - Windows.10.Amd64.Server19H1.Open - ${{ if eq(parameters.jobParameters.isFullMatrix, false) }}: - - Windows.7.Amd64.Open - - Windows.81.Amd64.Open - - Windows.10.Amd64.Server19H1.ES.Open + - ${{ if eq(parameters.jobParameters.buildConfig, 'Release') }}: + - Windows.7.Amd64.Open + - Windows.81.Amd64.Open + - Windows.10.Amd64.Server19H1.ES.Open + - ${{ if eq(parameters.jobParameters.buildConfig, 'Debug') }}: + - Windows.10.Amd64.Server19H1.Open # NETFX - ${{ if eq(parameters.jobParameters.framework, 'netfx') }}: diff --git a/eng/pipelines/libraries/helix.yml b/eng/pipelines/libraries/helix.yml index 945b51bfe7263..52f8bde7513e0 100644 --- a/eng/pipelines/libraries/helix.yml +++ b/eng/pipelines/libraries/helix.yml @@ -6,6 +6,7 @@ parameters: helixQueues: '' msbuildScript: '' targetOS: '' + testRunNamePrefixSuffix: '' testScope: 'innerloop' # innerloop | outerloop | all condition: always() @@ -18,7 +19,7 @@ steps: /p:OSGroup=${{ parameters.targetOS }} /p:TestScope=${{ parameters.testScope }} /p:TargetGroup=${{ parameters.framework }} - /p:HelixTargetQueues=${{ parameters.helixQueues }} + /p:TestRunNamePrefixSuffix=${{ parameters.testRunNamePrefixSuffix }} /p:HelixBuild=$(Build.BuildNumber) /p:Creator=${{ parameters.creator }} /bl:$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/SendToHelix.binlog @@ -26,3 +27,4 @@ steps: condition: and(succeeded(), ${{ parameters.condition }}) env: SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops + HelixTargetQueues: ${{ parameters.helixQueues }} # Pass queues to MSBuild as env var to avoid need of escaping them diff --git a/eng/pipelines/libraries/run-test-job.yml b/eng/pipelines/libraries/run-test-job.yml index 7dbdad7812964..fc05a8879ecdf 100644 --- a/eng/pipelines/libraries/run-test-job.yml +++ b/eng/pipelines/libraries/run-test-job.yml @@ -10,7 +10,8 @@ parameters: pool: '' testScope: '' helixQueues: [] - dependsOnBuildConfiguration: Debug + dependsOnTestBuildConfiguration: Debug + dependsOnTestArchitecture: x64 condition: true variables: {} @@ -28,22 +29,33 @@ jobs: container: '' # we just send to helix, no need to use a container. condition: ${{ parameters.condition }} pool: ${{ parameters.pool }} - name: test_run - displayName: 'Test Run' + ${{ if ne(parameters.liveCoreClrBuildConfig, '') }}: + displayName: ${{ format('Test Run {0} CoreCLR', parameters.liveCoreClrBuildConfig) }} + name: ${{ format('test_run_{0}_coreclr', parameters.liveCoreClrBuildConfig) }} + ${{ if eq(parameters.liveCoreClrBuildConfig, '') }}: + displayName: 'Test Run' + name: test_run dependsOn: - ${{ format('libraries_build_{0}_{1}{2}_{3}_{4}', parameters.framework, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} - - ${{ format('libraries_test_build_{0}_{1}_x64_{2}', parameters.framework, parameters.osGroup, parameters.dependsOnBuildConfiguration) }} + - ${{ format('libraries_test_build_{0}_{1}_{2}_{3}', parameters.framework, parameters.osGroup, parameters.dependsOnTestArchitecture, parameters.dependsOnTestBuildConfiguration) }} + - ${{ if ne(parameters.liveCoreClrBuildConfig, '') }}: + - ${{ format('coreclr_product_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveCoreClrBuildConfig) }} variables: + - librariesTestsArtifactName: ${{ format('libraries_test_assets_{0}_{1}_{2}', parameters.osGroup, parameters.dependsOnTestArchitecture, parameters.dependsOnTestBuildConfiguration) }} - _archiveTestsParameter: /p:ArchiveTests=true - _skipTestRestoreArg: /p:SkipTestRestore=false + - _testRunNamePrefixSuffix: '' + - ${{ if ne(parameters.liveCoreClrBuildConfig, '') }}: + - _testRunNamePrefixSuffix: CoreCLR_${{ parameters.liveCoreClrBuildConfig }} - ${{ parameters.variables }} steps: - template: /eng/pipelines/common/download-artifact-step.yml parameters: displayName: Build Assets + cleanUnpackFolder: false artifactName: $(librariesBuildArtifactName) artifactFileName: $(librariesBuildArtifactName)$(archiveExtension) unpackFolder: $(Build.SourcesDirectory)/artifacts @@ -56,6 +68,14 @@ jobs: artifactName: $(librariesTestsArtifactName) artifactFileName: $(librariesTestsArtifactName)$(archiveExtension) + - ${{ if ne(parameters.liveCoreClrBuildConfig, '') }}: + - script: $(_msbuildCommand) src/libraries/restore/runtime/runtime.depproj + $(_coreClrArtifactsPathArg) + $(_runtimeOSArg) + /p:ArchGroup=${{ parameters.archType }} + /p:ConfigurationGroup=${{ parameters.buildConfig }} + displayName: Override CoreCLR from live drop + - template: /eng/pipelines/libraries/helix.yml parameters: targetOS: ${{ parameters.osGroup }} @@ -67,3 +87,4 @@ jobs: testScope: ${{ parameters.testScope }} creator: dotnet-bot helixToken: '' + testRunNamePrefixSuffix: $(_testRunNamePrefixSuffix) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index f830c01531ee5..f669a72025b48 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1,4 +1,27 @@ -trigger: none +# Setting batch to true, triggers one build at a time. +# if there is a push while a build in progress, it will wait, +# until the running build finishes, and produce a build with all the changes +# that happened during the last build. +trigger: + batch: true + branches: + include: + - master + - release/*.* + paths: + include: + - '*' + - docs/manpages/* + exclude: + - eng/Version.Details.xml + - docs/* + - CODE-OF-CONDUCT.md + - CONTRIBUTING.md + - LICENSE.TXT + - PATENTS.TXT + - README.md + - SECURITY.md + - THIRD-PARTY-NOTICES.TXT pr: branches: @@ -10,6 +33,7 @@ pr: - '*' - docs/manpages/* exclude: + - eng/Version.Details.xml - docs/* - CODE-OF-CONDUCT.md - CONTRIBUTING.md @@ -19,6 +43,9 @@ pr: - SECURITY.md - THIRD-PARTY-NOTICES.TXT +variables: + - template: /eng/pipelines/common/variables.yml + jobs: # # Checkout repository @@ -30,6 +57,7 @@ jobs: include: - src/libraries/System.Private.CoreLib/* exclude: + - eng/Version.Details.xml - '*.md' - LICENSE.TXT - PATENTS.TXT @@ -41,6 +69,7 @@ jobs: - eng/pipelines/libraries/* - subset: libraries exclude: + - eng/Version.Details.xml - '*.md' - LICENSE.TXT - PATENTS.TXT @@ -54,6 +83,7 @@ jobs: include: - docs/manpages/* exclude: + - eng/Version.Details.xml - '*.md' - LICENSE.TXT - PATENTS.TXT @@ -65,142 +95,452 @@ jobs: - eng/pipelines/libraries/* # -# Build CoreCLR +# Build CoreCLR checked +# Only when CoreCLR is changed # - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml buildConfig: checked platforms: - - OSX_x64 - Linux_x64 - Linux_arm + - Linux_arm64 + - Linux_musl_x64 - Windows_NT_x86 - Windows_NT_x64 - Windows_NT_arm - Windows_NT_arm64 jobParameters: testGroup: innerloop + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) # -# Build libraries using live CoreLib from CoreCLR +# Build CoreCLR OSX_x64 checked +# Only when CoreCLR or Libraries is changed # - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - OSX_x64 + jobParameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Build CoreCLR release +# Only when CoreCLR is changed +# Always as they are needed by Installer and we always build and test the Installer. +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: release platforms: - OSX_x64 - Linux_x64 - Linux_arm + - Linux_arm64 + - Linux_musl_x64 + - Linux_musl_arm64 + - Windows_NT_x64 - Windows_NT_x86 + - Windows_NT_arm + - Windows_NT_arm64 + jobParameters: + testGroup: innerloop + +# +# Build CoreCLR Formatting Job +# Only when CoreCLR is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml + platforms: + - Linux_x64 - Windows_NT_x64 + jobParameters: + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Build libraries using live CoreLib +# These set of libraries are built always no matter what changed +# The reason for that is because Corelib and Installer needs it and +# These are part of the test matrix for Libraries changes. +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - Linux_arm + - Linux_musl_arm64 - Windows_NT_arm - Windows_NT_arm64 + - Windows_NT_x86 + jobParameters: + liveCoreClrBuildConfig: release + +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - Linux_arm64 + - Linux_musl_x64 + - Linux_x64 + - OSX_x64 + - Windows_NT_x64 + jobParameters: + liveCoreClrBuildConfig: release +# +# Libraries Build that only run when libraries is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - WebAssembly_wasm + - ${{ if eq(variables['isFullMatrix'], false) }}: + - Windows_NT_x86 + jobParameters: + framework: netcoreapp + liveCoreClrBuildConfig: release + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - Windows_NT_x86 + - ${{ if eq(variables['isFullMatrix'], true) }}: + - Windows_NT_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isFullMatrix: ${{ variables.isFullMatrix }} + framework: netfx + runTests: true + testScope: innerloop + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - Windows_NT_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isFullMatrix: ${{ variables.isFullMatrix }} + framework: allConfigurations + runTests: true + liveCoreClrBuildConfig: release + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Installer Build and Test +# 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 + parameters: + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - Linux_arm + - Linux_musl_arm64 + - Windows_NT_x86 + - Windows_NT_arm + - Windows_NT_arm64 + jobParameters: + liveCoreClrBuildConfig: release + liveLibrariesBuildConfig: Release + +- template: /eng/pipelines/installer/installer-matrix.yml + parameters: + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - OSX_x64 + - Linux_x64 + - Linux_arm64 + - Linux_musl_x64 + - Windows_NT_x64 + jobParameters: + liveCoreClrBuildConfig: release + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + +# +# Libraries Test Build +# Only when CoreCLR or Libraries is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-test-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - OSX_x64 + - Linux_x64 + - Windows_NT_x64 jobParameters: isOfficialBuild: false - liveCoreClrBuildConfig: checked + liveCoreClrBuildConfig: release + testScope: innerloop + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Crossgen-comparison jobs +# Only when CoreCLR is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/crossgen-comparison-job.yml + buildConfig: checked + platforms: + - Linux_arm + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + liveLibrariesBuildConfig: Release + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) # -# Test builds using live libraries build +# CoreCLR Test builds using live libraries release build +# Only when CoreCLR is changed # - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/coreclr/templates/build-test-job.yml buildConfig: checked platforms: - - OSX_x64 - - Linux_x64 - Linux_arm - Windows_NT_x86 - - Windows_NT_x64 - Windows_NT_arm - Windows_NT_arm64 jobParameters: testGroup: innerloop liveLibrariesBuildConfig: Release + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) # -# CoreCLR Test executions +# CoreCLR Test builds using live libraries debug build +# Only when CoreCLR is changed # - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml + jobTemplate: /eng/pipelines/coreclr/templates/build-test-job.yml buildConfig: checked platforms: - OSX_x64 - Linux_x64 + - Linux_arm64 + - Windows_NT_x64 + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# CoreCLR Test executions using live libraries +# Only when CoreCLR is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml + buildConfig: checked + platforms: - Linux_arm - Windows_NT_x86 - - Windows_NT_x64 - # - Windows_NT_arm return this when https://github.com/dotnet/runtime/issues/1097 is fixed. + - Windows_NT_arm - Windows_NT_arm64 helixQueueGroup: pr helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml jobParameters: testGroup: innerloop liveLibrariesBuildConfig: Release - condition: false + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/run-test-job.yml + buildConfig: checked + platforms: + - OSX_x64 + - Linux_x64 + - Linux_arm64 + - Windows_NT_x64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) # -# Libraries Test Build +# Libraries Release Test Execution against a release runtime +# Only when the PR contains a libraries change # - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/libraries/build-test-job.yml + jobTemplate: /eng/pipelines/libraries/run-test-job.yml buildConfig: Release platforms: - - OSX_x64 - - Linux_x64 - - Linux_arm - Windows_NT_x86 - - Windows_NT_x64 - - Windows_NT_arm - - Windows_NT_arm64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml jobParameters: isOfficialBuild: false + isFullMatrix: ${{ variables.isFullMatrix }} + framework: netcoreapp testScope: innerloop - liveCoreClrBuildConfig: checked + liveCoreClrBuildConfig: release + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) # -# Libraries Test Execution +# Libraries Debug Test Execution against a release runtime +# Only when the PR contains a libraries change # - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: Release + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} platforms: + - Windows_NT_x64 - OSX_x64 - Linux_x64 - - Linux_arm - - Windows_NT_x86 - - Windows_NT_x64 - - Windows_NT_arm - - Windows_NT_arm64 - helixQueueGroup: pr + - Linux_musl_x64 + - ${{ if eq(variables['isFullMatrix'], true) }}: + - Linux_arm + - Linux_arm64 + - Linux_musl_arm64 + - ${{ if eq(variables['isFullMatrix'], false) }}: + - Windows_NT_x86 helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml jobParameters: isOfficialBuild: false - isFullMatrix: false + isFullMatrix: ${{ variables.isFullMatrix }} framework: netcoreapp testScope: innerloop - liveCoreClrBuildConfig: checked - dependsOnBuildConfiguration: Release - condition: false + liveCoreClrBuildConfig: release + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) # -# Installer Build and Test +# Libraries Test Execution against a checked runtime +# Only when the PR contains a coreclr change # -- template: /eng/pipelines/installer/installer-matrix.yml +- template: /eng/pipelines/common/platform-matrix.yml parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: Release + platforms: + # - Windows_NT_arm return this when https://github.com/dotnet/runtime/issues/1097 is fixed. + - Windows_NT_x86 + - ${{ if eq(variables['isFullMatrix'], true) }}: + - Windows_NT_arm64 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries jobParameters: + framework: netcoreapp + testScope: innerloop liveCoreClrBuildConfig: checked - liveLibrariesBuildConfig: Release + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} platforms: - - OSX_x64 - - Linux_x64 - - Linux_arm - - Windows_NT_x86 - Windows_NT_x64 - - Windows_NT_arm - - Windows_NT_arm64 + - Linux_x64 + - Linux_musl_x64 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries + jobParameters: + framework: netcoreapp + testScope: innerloop + liveCoreClrBuildConfig: checked + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Libraries Test Execution against a checked runtime +# Only if CoreCLR or Libraries is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - OSX_x64 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries + jobParameters: + framework: netcoreapp + testScope: innerloop + liveCoreClrBuildConfig: checked + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) \ No newline at end of file diff --git a/src/libraries/System.Net.Mail/tests/Functional/SmtpClientTest.cs b/src/libraries/System.Net.Mail/tests/Functional/SmtpClientTest.cs index 4fe0777608f9f..0832885aa78fb 100644 --- a/src/libraries/System.Net.Mail/tests/Functional/SmtpClientTest.cs +++ b/src/libraries/System.Net.Mail/tests/Functional/SmtpClientTest.cs @@ -358,6 +358,7 @@ public async Task TestMailDeliveryAsync(string body) [Fact] [PlatformSpecific(TestPlatforms.Windows)] // NTLM support required, see https://github.com/dotnet/corefx/issues/28961 + [SkipOnCoreClr("System.Net.Tests are flaky and/or long running: https://github.com/dotnet/runtime/issues/131")] public async Task TestCredentialsCopyInAsyncContext() { using var server = new LoopbackSmtpServer(); diff --git a/src/libraries/sendtohelix.proj b/src/libraries/sendtohelix.proj index ed0514b2de74b..746c65c35836a 100644 --- a/src/libraries/sendtohelix.proj +++ b/src/libraries/sendtohelix.proj @@ -1,10 +1,5 @@ - + - - pr/ - $(HelixSourcePrefix)dotnet/runtime - $(HelixSource)/$(BUILD_SOURCEBRANCH) - $(BUILD_BUILDNUMBER) default @@ -31,6 +26,7 @@ $(BuildConfiguration)- + $(TestRunNamePrefix)$(TestRunNamePrefixSuffix)- $(WaitForWorkItemCompletion) @@ -107,4 +103,8 @@ + + + +