# EACH JOB SHOULD INCLUDE THE FOLLOWING PROPERTIES (ASIDE FROM THE REQUIRED ONES IN THE JOB SCHEMA)
# Required: as part of the strategy matrix, the following variables should be defined
- # _configuration: Debug | Release
+ # _BuildConfig: Debug | Release
# _architecture: x64 | x86 | arm | arm64
# _framework: (netcoreapp, netfx, uap, etc).
# _helixQueues: Windows.Amd64 (Only needed if submitToHelix -> true.) -- Queues should be separated by + if multiple.
${{ if and(ne(property.key, 'job'), ne(property.key, 'variables'), ne(property.key, 'enableMicrobuild')) }}:
${{ property.key }}: ${{ property.value }}
+ # enable helix telemetry -- we only send telemetry during official builds
+ enableTelemetry: ${{ parameters.isOfficialBuild }}
+ helixRepo: corefx
+
name: ${{ job.job }}
workspace:
clean: all
$(_commonArguments)
-framework $(_framework)
/p:ArchGroup=$(_architecture)
- /p:ConfigurationGroup=$(_configuration)
+ /p:ConfigurationGroup=$(_BuildConfig)
/p:SkipTests=$(_skipTests)
/p:Outerloop=$(_outerloop)
/p:ArchiveTests=${{ job.submitToHelix }}
parameters:
targetOS: ${{ parameters.targetOS }}
archGroup: $(_architecture)
- configuration: $(_configuration)
+ configuration: $(_BuildConfig)
helixQueues: $(_helixQueues)
msbuildScript: $(_msbuildCommand)
framework: $(_framework)
- task: PublishBuildArtifacts@1
displayName: Publish packages to artifacts container
inputs:
- pathToPublish: $(Build.SourcesDirectory)/artifacts/packages/$(_configuration)
+ pathToPublish: $(Build.SourcesDirectory)/artifacts/packages/$(_BuildConfig)
artifactName: packages
artifactType: container
condition: and(succeeded(), ne(variables['_skipPublishPackages'], 'true'))
strategy:
matrix:
x64_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: x64
_framework: netcoreapp
_helixQueues: $(linuxDefaultQueues)
_buildExtraArguments: ''
arm64_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: arm64
_framework: netcoreapp
_helixQueues: $(linuxArm64Queues)
${{ if eq(parameters.isOfficialBuild, 'true') }}:
musl_x64_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: x64
_framework: netcoreapp
_helixQueues: $(alpineQueues)
matrix:
${{ if eq(parameters.isOfficialBuild, 'false') }}:
musl_x64_Debug:
- _configuration: Debug
+ _BuildConfig: Debug
_architecture: x64
_framework: netcoreapp
_dockerContainer: alpine_36_container
_buildExtraArguments: /p:RuntimeOS=linux-musl /p:PortableBuild=false
arm_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: arm
_framework: netcoreapp
_buildExtraArguments: /p:RuntimeOS=ubuntu.16.04
# PR CI Matrix
${{ if eq(parameters.isOfficialBuild, 'false') }}:
x64_Debug:
- _configuration: Debug
+ _BuildConfig: Debug
_architecture: x64
_framework: netcoreapp
_helixQueues: $(netcoreappWindowsQueues)+$(nanoQueues)
x86_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: x86
_framework: netcoreapp
_helixQueues: $(netcoreappWindowsQueues)
NETFX_x86_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: x86
_framework: netfx
_helixQueues: $(uapNetfxQueues)
UWP_CoreCLR_x64_Debug:
- _configuration: Debug
+ _BuildConfig: Debug
_architecture: x64
_framework: uap
_helixQueues: $(uapNetfxQueues)
# Official build LEGS with HELIX Testing
${{ if eq(parameters.isOfficialBuild, 'true') }}:
x64_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: x64
_framework: netcoreapp
_helixQueues: $(netcoreappWindowsQueues)+$(nanoQueues)
x86_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: x86
_framework: netcoreapp
_helixQueues: $(netcoreappWindowsQueues)
NETFX_x86_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: x86
_framework: netfx
_helixQueues: $(uapNetfxQueues)
_skipPublishPackages: true # In NETFX leg we don't produce packages
NETFX_x64_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: x64
_framework: netfx
_helixQueues: $(uapNetfxQueues)
_skipPublishPackages: true # In NETFX leg we don't produce packages
UAP_x64_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: x64
_framework: uap
_helixQueues: $(uapNetfxQueues)
UAP_x86_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: x86
_framework: uap
_helixQueues: $(uapNetfxQueues)
UAP_arm_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: arm
_framework: uap
_helixQueues: $(windowsArmQueue)
# PR Validation Matrix
${{ if eq(parameters.isOfficialBuild, 'false') }}:
x64_Debug:
- _configuration: Debug
+ _BuildConfig: Debug
_architecture: x64
_framework: allConfigurations
# Official Build Matrix
${{ if eq(parameters.isOfficialBuild, 'true') }}:
x64_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: x64
_framework: allConfigurations
-ci
-$(_framework)
/p:ArchGroup=$(_architecture)
- /p:ConfigurationGroup=$(_configuration)
+ /p:ConfigurationGroup=$(_BuildConfig)
/p:RuntimeOS=win10
$(_windowsOfficialBuildArguments)
$(_msbuildCommonParameters)
-test
/p:TargetGroup=netstandard
/p:ArchGroup=$(_architecture)
- /p:ConfigurationGroup=$(_configuration)
+ /p:ConfigurationGroup=$(_BuildConfig)
/p:SkipTests=true
displayName: Build Netstandard Test Suite
- script: build.cmd
-test
-$(_framework)
/p:ArchGroup=$(_architecture)
- /p:ConfigurationGroup=$(_configuration)
+ /p:ConfigurationGroup=$(_BuildConfig)
displayName: Run Package Tests
# TODO: UAPAOT official builds should send to helix using continuation runner.
matrix:
${{ if eq(parameters.isOfficialBuild, 'false') }}:
UWP_NETNative_x86_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: x86
_framework: uapaot
${{ if eq(parameters.isOfficialBuild, 'true') }}:
arm_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: arm
_framework: netcoreapp
arm64_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: arm64
_framework: netcoreapp
UAPAOT_x86_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: x86
_framework: uapaot
UAPAOT_x64_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: x64
_framework: uapaot
UAPAOT_arm_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: arm
_framework: uapaot
UAPAOT_arm64_Release:
- _configuration: Release
+ _BuildConfig: Release
_architecture: arm64
_framework: uapaot