jobs:
# Windows legs
- template: /eng/pipelines/windows.yml
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}:
- parameters:
- isOfficialBuild: true
+ parameters:
+ isOfficialBuild: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
+ fullMatrix: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
# Linux legs
- template: /eng/pipelines/linux.yml
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}:
- parameters:
- isOfficialBuild: true
+ parameters:
+ isOfficialBuild: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
+ fullMatrix: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
# MacOS legs
- template: /eng/pipelines/macos.yml
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}:
- parameters:
- isOfficialBuild: true
+ parameters:
+ isOfficialBuild: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
+ fullMatrix: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
- # Only run in official builds
- - ${{ if and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}:
- # Redhat6 leg is only for official builds
- - template: /eng/pipelines/redhat6.yml
+ # RedHat6 leg
+ - template: /eng/pipelines/redhat6.yml
+ parameters:
+ isOfficialBuild: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
+ fullMatrix: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
# FreeBSD leg is only for official builds
# - template: /eng/pipelines/freebsd.yml
+ # parameters:
+ # isOfficialBuild: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
+ # fullMatrix: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
- # Publish step
+ # Publish step. Only run in official builds
+ - ${{ if and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}:
- template: /eng/pipelines/publish.yml
parameters:
dependsOn:
- template: /eng/pipelines/helix.yml
parameters:
# send tests to helix only on public builds, official scheduled builds or manual official builds.
- condition: or(eq(${{ parameters.isOfficialBuild }}, False), notIn(variables['Build.Reason'], 'BatchedCI', 'IndividualCI'))
+ condition: eq(${{ parameters.isOfficialBuild }}, False)
targetOS: ${{ parameters.targetOS }}
archGroup: $(_architecture)
configuration: $(_BuildConfig)
-# FreeBSD leg. Only for used in Official Builds
+# FreeBSD leg
+parameters:
+ # Required: value to specify if the job is comming from an official build to run extra steps and sign binaries
+ # Default: false
+ isOfficialBuild: false
+ # Required: value to specify if the full test matrix should be tested
+ # Default: false
+ fullMatrix: false
+ # Required: value to specify if the build is comming from an outerloop pipeline.
+ # Default: false
+ isOuterloopBuild: false
jobs:
- template: corefx-base.yml
parameters:
- isOfficialBuild: true
+ isOfficialBuild: ${{ parameters.isOfficialBuild }}
targetOS: FreeBSD
jobs:
submitToHelix: false
variables:
- - _skipTests: true
- - _outerloop: true # Only runs in official builds
+ - _outerloop: ${{ parameters.isOuterloopBuild }}
# Required: value to specify if the job is comming from an official build to run extra steps and sign binaries
# Default: false
isOfficialBuild: false
+ # Required: value to specify if the full test matrix should be tested
+ # Default: false
+ fullMatrix: false
# Required: value to specify if the build is comming from an outerloop pipeline.
# Default: false
isOuterloopBuild: false
jobs:
-
- template: corefx-base.yml
parameters:
isOfficialBuild: ${{ parameters.isOfficialBuild }}
_buildScriptPrefix: ''
_buildExtraArguments: /p:RuntimeOS=linux-musl
- ${{ if eq(parameters.isOfficialBuild, 'true') }}:
+ ${{ if eq(parameters.fullMatrix, 'true') }}:
arm_Release:
_BuildConfig: Release
_architecture: arm
submitToHelix: true
variables:
- - _skipTests: true
- - _outerloop: ${{ parameters.isOfficialBuild }}
- - ${{ if eq(parameters.isOuterloopBuild, 'true') }}:
- - _outerloop: true
-
- - ${{ if eq(parameters.isOfficialBuild, 'false') }}:
- - linuxDefaultQueues: Centos.7.Amd64.Open+RedHat.7.Amd64.Open+Debian.8.Amd64.Open+Ubuntu.1604.Amd64.Open+Ubuntu.1804.Amd64.Open+OpenSuse.42.Amd64.Open+\(Fedora.28.Amd64\)ubuntu.1604.amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-28-helix-09ca40b-20190508143249
- - linuxArm64Queues: \(Ubuntu.1604.Arm64\)Ubuntu.1604.Arm64.Docker.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-helix-arm64v8-b049512-20190321153539
- - alpineQueues: \(Alpine.38.Amd64\)ubuntu.1604.amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.8-helix-09ca40b-20190508143246
-
- - ${{ if eq(parameters.isOfficialBuild, 'true') }}:
- - linuxDefaultQueues: Centos.7.Amd64+RedHat.7.Amd64+Debian.8.Amd64+Debian.9.Amd64+Ubuntu.1604.Amd64+Ubuntu.1804.Amd64+Ubuntu.1810.Amd64+OpenSuse.42.Amd64+SLES.12.Amd64+SLES.15.Amd64+\(Fedora.28.Amd64\)ubuntu.1604.amd64@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-28-helix-09ca40b-20190508143249+\(Fedora.29.Amd64\)ubuntu.1604.amd64@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-29-09ca40b-20190508143249+\(Ubuntu.1904.Amd64\)ubuntu.1604.amd64@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-19.04-helix-amd64-09ca40b-20190508143257
- - linuxArm64Queues: \(Ubuntu.1604.Arm64\)Ubuntu.1604.Arm64.Docker@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-helix-arm64v8-b049512-20190321153539
- - linuxArmQueues: \(Debian.9.Arm32\)Ubuntu.1604.Arm32@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-9-helix-arm32v7-b049512-20190321153542
- - alpineQueues: \(Alpine.38.Amd64\)ubuntu.1604.amd64@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.8-helix-09ca40b-20190508143246+\(Alpine.39.Amd64\)ubuntu.1604.amd64@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-helix-09ca40b-20190508143246
- - alpineArm64Queues: \(Alpine.38.Arm64\)Ubuntu.1604.Arm64.Docker@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.8-helix-arm64v8-46e69dd-20190327215724
+ - _outerloop: ${{ parameters.isOuterloopBuild }}
+ - linuxArm64Queues: \(Ubuntu.1604.Arm64.Open\)Ubuntu.1604.Arm64.Docker.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-helix-arm64v8-b049512-20190321153539
+
+ - ${{ if eq(parameters.fullMatrix, 'false') }}:
+ - linuxDefaultQueues: Centos.7.Amd64.Open+RedHat.7.Amd64.Open+Debian.8.Amd64.Open+Ubuntu.1604.Amd64.Open+Ubuntu.1804.Amd64.Open+OpenSuse.42.Amd64.Open+\(Fedora.28.Amd64.Open\)ubuntu.1604.amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-28-helix-09ca40b-20190508143249
+ - alpineQueues: \(Alpine.38.Amd64.Open\)ubuntu.1604.amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.8-helix-09ca40b-20190508143246
+
+ - ${{ if eq(parameters.fullMatrix, 'true') }}:
+ - linuxDefaultQueues: Centos.7.Amd64.Open+RedHat.7.Amd64.Open+Debian.8.Amd64.Open+Debian.9.Amd64.Open+Ubuntu.1604.Amd64.Open+Ubuntu.1804.Amd64.Open+Ubuntu.1810.Amd64.Open+OpenSuse.42.Amd64.Open+SLES.12.Amd64.Open+SLES.15.Amd64.Open+\(Fedora.28.Amd64.Open\)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-28-helix-09ca40b-20190508143249+\(Fedora.29.Amd64.Open\)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-29-09ca40b-20190508143249+\(Ubuntu.1904.Amd64.Open\)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-19.04-helix-amd64-09ca40b-20190508143257
+ - linuxArmQueues: \(Debian.9.Arm32.Open\)Ubuntu.1604.Arm32.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-9-helix-arm32v7-b049512-20190321153542
+ - alpineQueues: \(Alpine.38.Amd64.Open\)ubuntu.1604.amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.8-helix-09ca40b-20190508143246+\(Alpine.39.Amd64.Open\)ubuntu.1604.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-helix-09ca40b-20190508143246
+ - alpineArm64Queues: \(Alpine.38.Arm64.Open\)Ubuntu.1604.Arm64.Docker.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.8-helix-arm64v8-46e69dd-20190327215724
# Legs without helix testing
# Only run this leg in PRs.
submitToHelix: false
variables:
- - _skipTests: true
- - _outerloop: ${{ parameters.isOfficialBuild }}
+ - _outerloop: ${{ parameters.isOuterloopBuild }}
# Required: value to specify if the job is comming from an official build to run extra steps and sign binaries
# Default: false
isOfficialBuild: false
+ # Required: value to specify if the full test matrix should be tested
+ # Default: false
+ fullMatrix: false
# Required: value to specify if the build is comming from an outerloop pipeline.
# Default: false
isOuterloopBuild: false
jobs:
-
- template: corefx-base.yml
parameters:
isOfficialBuild: ${{ parameters.isOfficialBuild }}
displayName: MacOS
strategy:
matrix:
- ${{ if eq(parameters.isOfficialBuild, 'false') }}:
+ ${{ if eq(parameters.fullMatrix, 'false') }}:
x64_Debug:
_BuildConfig: Debug
_architecture: x64
_framework: netcoreapp
_helixQueues: $(macOSQueues)
- ${{ if eq(parameters.isOfficialBuild, 'true') }}:
+ ${{ if eq(parameters.fullMatrix, 'true') }}:
x64_Release:
_BuildConfig: Release
_architecture: x64
submitToHelix: true
variables:
- - _skipTests: true
- - _outerloop: ${{ parameters.isOfficialBuild }}
- - ${{ if eq(parameters.isOuterloopBuild, 'true') }}:
- - _outerloop: true
-
+ - _outerloop: ${{ parameters.isOuterloopBuild }}
+
- ${{ if eq(parameters.isOfficialBuild, 'false') }}:
- macOSQueues: OSX.1012.Amd64.Open+OSX.1013.Amd64.Open
- ${{ if eq(parameters.isOfficialBuild, 'true') }}:
- - macOSQueues: OSX.1012.Amd64+OSX.1013.Amd64+OSX.1014.Amd64
+ - macOSQueues: OSX.1012.Amd64.Open+OSX.1013.Amd64.Open+OSX.1014.Amd64.Open
jobs:
# Windows outerloop legs
- - ${{ if endsWith(variables['Build.DefinitionName'], 'windows') }}:
+ - ${{ if or(endsWith(variables['Build.DefinitionName'], 'windows'), endsWith(variables['Build.DefinitionName'], 'outerloop')) }}:
- template: /eng/pipelines/windows.yml
parameters:
+ isOfficialBuild: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
+ fullMatrix: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
isOuterloopBuild: true
# Linux outerloop legs
- - ${{ if endsWith(variables['Build.DefinitionName'], 'linux') }}:
+ - ${{ if or(endsWith(variables['Build.DefinitionName'], 'linux'), endsWith(variables['Build.DefinitionName'], 'outerloop')) }}:
- template: /eng/pipelines/linux.yml
parameters:
+ isOfficialBuild: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
+ fullMatrix: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
isOuterloopBuild: true
# MacOS outerloop legs
- - ${{ if endsWith(variables['Build.DefinitionName'], 'osx') }}:
+ - ${{ if or(endsWith(variables['Build.DefinitionName'], 'osx'), endsWith(variables['Build.DefinitionName'], 'outerloop')) }}:
- template: /eng/pipelines/macos.yml
parameters:
+ isOfficialBuild: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
+ fullMatrix: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
isOuterloopBuild: true
\ No newline at end of file
-# RedHat 6 leg. Only for used in Official Builds
+# RedHat 6 leg
+parameters:
+ # Required: value to specify if the job is comming from an official build to run extra steps and sign binaries
+ # Default: false
+ isOfficialBuild: false
+ # Required: value to specify if the full test matrix should be tested
+ # Default: false
+ fullMatrix: false
+ # Required: value to specify if the build is comming from an outerloop pipeline.
+ # Default: false
+ isOuterloopBuild: false
jobs:
- template: corefx-base.yml
parameters:
- isOfficialBuild: true
+ isOfficialBuild: ${{ parameters.isOfficialBuild }}
targetOS: Linux
jobs:
submitToHelix: true
variables:
- - _skipTests: true
- - _outerloop: true # Only runs in official builds
- - redhatHelixQueue: RedHat.6.Amd64
+ - _outerloop: ${{ parameters.isOuterloopBuild }}
+ - redhatHelixQueue: RedHat.6.Amd64.Open
# Required: value to specify if the job is comming from an official build to run extra steps and sign binaries
# Default: false
isOfficialBuild: false
+ # Required: value to specify if the full test matrix should be tested
+ # Default: false
+ fullMatrix: false
# Required: value to specify if the build is comming from an outerloop pipeline.
# Default: false
isOuterloopBuild: false
strategy:
matrix:
# PR CI Matrix
- ${{ if eq(parameters.isOfficialBuild, 'false') }}:
+ ${{ if eq(parameters.fullMatrix, 'false') }}:
x64_Debug:
_BuildConfig: Debug
_architecture: x64
_architecture: x64
_framework: uap
_helixQueues: $(uapNetfxQueues)
+
+ # Run arm on the matrix or in Outerloop
+ ${{ if or(eq(parameters.fullMatrix, 'true'), eq(parameters.isOuterloopBuild, 'true')) }}:
+ arm64_Release:
+ _BuildConfig: Release
+ _architecture: arm64
+ _framework: netcoreapp
+ _helixQueues: $(windowsArmQueue)
+ _publishTests: true
- # Official build LEGS with HELIX Testing
- ${{ if eq(parameters.isOfficialBuild, 'true') }}:
+ # Full test matrix
+ ${{ if eq(parameters.fullMatrix, 'true') }}:
x64_Release:
_BuildConfig: Release
_architecture: x64
_helixQueues: $(netcoreappWindowsQueues)
_publishTests: true
- arm64_Release:
- _BuildConfig: Release
- _architecture: arm64
- _framework: netcoreapp
- _helixQueues: $(windowsArmQueue)
- _publishTests: true
-
NETFX_x86_Release:
_BuildConfig: Release
_architecture: x86
_helixQueues: $(uapNetfxQueues)
pool:
- ${{ if eq(parameters.isOfficialBuild, 'true') }}:
- name: NetCoreInternal-Pool
- queue: buildpool.windows.10.amd64.vs2017
- ${{ if eq(parameters.isOfficialBuild, 'false') }}:
- name: Hosted VS2017
+ name: Hosted VS2017
submitToHelix: true
buildExtraArguments: /p:RuntimeOS=win10
variables:
- - _skipTests: true
- - _outerloop: ${{ parameters.isOfficialBuild }}
- - ${{ if eq(parameters.isOuterloopBuild, 'true') }}:
- - _outerloop: true
+ - _outerloop: ${{ parameters.isOuterloopBuild }}
+
+ - nanoQueues: "`(Windows.Nano.1803.Amd64.Open`)windows.10.amd64.serverrs4.open@mcr.microsoft.com/dotnet-buildtools/prereqs:nanoserver-1803-helix-amd64-05227e1-20190509225944"
+ - uapNetfxQueues: Windows.10.Amd64.ClientRS5.Open
+ - windowsArmQueue: Windows.10.Arm64.Open
- - ${{ if eq(parameters.isOfficialBuild, 'false') }}:
+ - ${{ if eq(parameters.fullMatrix, 'false') }}:
- netcoreappWindowsQueues: Windows.7.Amd64.Open+Windows.81.Amd64.Open+Windows.10.Amd64.ClientRS4.ES.Open
- - nanoQueues: "`(Windows.Nano.1803.Amd64.Open`)windows.10.amd64.serverrs4.open@mcr.microsoft.com/dotnet-buildtools/prereqs:nanoserver-1803-helix-amd64-05227e1-20190509225944"
- - uapNetfxQueues: Windows.10.Amd64.ClientRS5.Open
- - ${{ if eq(parameters.isOfficialBuild, 'true') }}:
- - netcoreappWindowsQueues: Windows.7.Amd64+Windows.81.Amd64+Windows.10.Amd64.Core+Windows.10.Amd64.ClientRS4
- - nanoQueues: "`(Windows.Nano.1803.Amd64`)windows.10.amd64.serverrs4@mcr.microsoft.com/dotnet-buildtools/prereqs:nanoserver-1803-helix-amd64-05227e1-20190509225944"
- - uapNetfxQueues: Windows.10.Amd64.ClientRS5
- - windowsArmQueue: Windows.10.Arm64
+ - ${{ if eq(parameters.fullMatrix, 'true') }}:
+ - netcoreappWindowsQueues: Windows.7.Amd64.Open+Windows.81.Amd64.Open+Windows.10.Amd64.ClientRS4.Open+Windows.10.Amd64.ServerRS5.Open
# There is no point of running legs without outerloop tests, when in an outerloop build.
- ${{ if eq(parameters.isOuterloopBuild, 'false') }}:
strategy:
matrix:
# PR Validation Matrix
- ${{ if eq(parameters.isOfficialBuild, 'false') }}:
+ ${{ if eq(parameters.fullMatrix, 'false') }}:
x64_Debug:
_BuildConfig: Debug
_architecture: x64
_helixQueues: $(allConfigurationsQueues)
# Official Build Matrix
- ${{ if eq(parameters.isOfficialBuild, 'true') }}:
+ ${{ if eq(parameters.fullMatrix, 'true') }}:
x64_Release:
_BuildConfig: Release
_architecture: x64
_helixQueues: $(allConfigurationsQueues)
pool:
- ${{ if eq(parameters.isOfficialBuild, 'true') }}:
- name: NetCoreInternal-Pool
- queue: buildpool.windows.10.amd64.vs2017
- ${{ if eq(parameters.isOfficialBuild, 'false') }}:
- name: Hosted VS2017
+ name: Hosted VS2017
submitToHelix: true
buildExtraArguments: /p:RuntimeOS=win10
variables:
- _outerloop: false
- - ${{ if eq(parameters.isOfficialBuild, 'false') }}:
- - allConfigurationsQueues: Windows.10.Amd64.ClientRS5.Open
- - ${{ if eq(parameters.isOfficialBuild, 'true') }}:
- - allConfigurationsQueues: Windows.10.Amd64.ClientRS5
+ - allConfigurationsQueues: Windows.10.Amd64.ClientRS5.Open
_jobFramework: -allConfigurations
customBuildSteps:
displayName: Windows
strategy:
matrix:
- ${{ if eq(parameters.isOfficialBuild, 'false') }}:
+ ${{ if eq(parameters.fullMatrix, 'false') }}:
UWP_NETNative_x86_Release:
_BuildConfig: Release
_architecture: x86
_framework: uapaot
- ${{ if eq(parameters.isOfficialBuild, 'true') }}:
+ ${{ if eq(parameters.fullMatrix, 'true') }}:
arm_Release:
_BuildConfig: Release
_architecture: arm
_framework: uap
pool:
- ${{ if eq(parameters.isOfficialBuild, 'true') }}:
- name: NetCoreInternal-Pool
- queue: buildpool.windows.10.amd64.vs2017
- ${{ if eq(parameters.isOfficialBuild, 'false') }}:
- name: Hosted VS2017
+ name: Hosted VS2017
submitToHelix: false
buildExtraArguments: /p:RuntimeOS=win10
variables:
- - _skipTests: true
- - _outerloop: ${{ parameters.isOfficialBuild }}
+ - _outerloop: ${{ parameters.isOuterloopBuild }}
}
}
- [Fact]
+ // Active issue https://github.com/dotnet/corefx/issues/37739
+ [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotRedHatFamily6))]
[PlatformSpecific(~TestPlatforms.OSX)] // On OSX, ProcessName returns the script interpreter.
public void ProcessNameMatchesScriptName()
{