Migrate to 1ES templates for internal builds (#19016)

This commit is contained in:
Michael Yanni 2024-03-15 13:42:58 -07:00 committed by GitHub
commit b40c44502d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 668 additions and 369 deletions

View file

@ -1,3 +1,5 @@
# Pipeline: https://dnceng.visualstudio.com/internal/_build?definitionId=286
trigger: trigger:
batch: true batch: true
branches: branches:
@ -23,43 +25,82 @@ variables:
- group: DotNet-Installer-SDLValidation-Params - group: DotNet-Installer-SDLValidation-Params
- name: _PublishUsingPipelines - name: _PublishUsingPipelines
value: true value: true
- name: _InternalRuntimeDownloadArgs - name: _InternalRuntimeDownloadArgs
value: '' value: ''
- ${{ if eq(variables['System.TeamProject'], 'internal') }}: - ${{ if eq(variables['System.TeamProject'], 'internal') }}:
- group: DotNetBuilds storage account read tokens - group: DotNetBuilds storage account read tokens
- name: _InternalRuntimeDownloadArgs - name: _InternalRuntimeDownloadArgs
value: /p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal value: /p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal
/p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64)
/p:dotnetbuilds-internal-container-read-token-base64=$(dotnetbuilds-internal-container-read-token-base64) /p:dotnetbuilds-internal-container-read-token-base64=$(dotnetbuilds-internal-container-read-token-base64)
- template: /eng/common/templates-official/variables/pool-providers.yml
- template: /eng/common/templates/variables/pool-providers.yml resources:
repositories:
- repository: 1esPipelines
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release
extends:
template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines
parameters:
containers:
alpine319WithNode:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode
cblMariner20Fpm:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-fpm
centosStream8:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8
debian11Amd64:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-11-amd64
fedora39:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39
ubuntu2204:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04
ubuntu2204CrossArmAlpine:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-cross-arm-alpine
ubuntu2204DebPkg:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-debpkg
sdl:
sourceAnalysisPool:
name: $(DncEngInternalBuildPool)
image: 1es-windows-2022
os: windows
# https://docs.opensource.microsoft.com/tools/cg/component-detection/variables/
componentgovernance:
# This should be uncommented when a fix is available.
# See: https://dev.azure.com/mseng/1ES/_workitems/edit/2159448
# failOnAlert: false
# This should be removed when failOnAlert works properly.
ignoreDirectories: '.packages'
customBuildTags:
- ES365AIMigrationTooling
stages: stages:
- stage: Build - stage: Build
jobs: jobs:
# This job is for build retry configuration. # Build Retry Configuration
- job: Publish_Build_Configuration - job: Publish_Build_Configuration
pool: pool:
${{ if eq(variables['System.TeamProject'], 'public') }}: ${{ if eq(variables['System.TeamProject'], 'public') }}:
name: $(DncEngPublicBuildPool) name: $(DncEngPublicBuildPool)
demands: ImageOverride -equals windows.vs2022preview.amd64.open image: 1es-windows-2022-open
os: windows
${{ if eq(variables['System.TeamProject'], 'internal') }}: ${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: $(DncEngInternalBuildPool) name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals windows.vs2022preview.amd64 image: 1es-windows-2022
os: windows
steps: steps:
- publish: $(Build.SourcesDirectory)\eng\buildConfiguration - task: 1ES.PublishPipelineArtifact@1
artifact: buildConfiguration
displayName: Publish Build Config displayName: Publish Build Config
inputs:
targetPath: $(Build.SourcesDirectory)\eng\buildConfiguration
artifactName: buildConfiguration
## PR-only jobs # PR-only jobs
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: - ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
# Windows
## Windows - template: eng/build.yml@self
- template: eng/build.yml
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
jobName: Build_Debug_x64 jobName: Build_Debug_x64
@ -68,46 +109,45 @@ stages:
additionalBuildParameters: '/p:PublishInternalAsset=true' additionalBuildParameters: '/p:PublishInternalAsset=true'
runTests: true runTests: true
## Linux # Linux
- template: eng/build.yml@self
- template: eng/build.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Ubuntu_22_04_Debug_x64 jobName: Build_Ubuntu_22_04_Debug_x64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04' container: ubuntu2204
buildConfiguration: Debug buildConfiguration: Debug
buildArchitecture: x64 buildArchitecture: x64
linuxPortable: true linuxPortable: true
runTests: true runTests: true
- template: eng/build.yml - template: eng/build.yml@self
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Fedora_39_Debug_x64 jobName: Build_Fedora_39_Debug_x64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39' container: fedora39
buildConfiguration: Debug buildConfiguration: Debug
buildArchitecture: x64 buildArchitecture: x64
linuxPortable: true linuxPortable: true
runTests: true runTests: true
- template: eng/build.yml - template: eng/build.yml@self
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_CentOS_8_Stream_Debug_x64 jobName: Build_CentOS_8_Stream_Debug_x64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8' container: centosStream8
buildConfiguration: Debug buildConfiguration: Debug
buildArchitecture: x64 buildArchitecture: x64
linuxPortable: false linuxPortable: false
runTests: true runTests: true
- template: eng/build.yml - template: eng/build.yml@self
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Debian_11_Debug_x64 jobName: Build_Debian_11_Debug_x64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:debian-11-amd64' container: debian11Amd64
buildConfiguration: Debug buildConfiguration: Debug
buildArchitecture: x64 buildArchitecture: x64
additionalBuildParameters: '/p:BuildSdkDeb=true' additionalBuildParameters: '/p:BuildSdkDeb=true'
linuxPortable: false linuxPortable: false
runTests: true runTests: true
- template: eng/build.yml - template: eng/build.yml@self
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Arm64_Debug jobName: Build_Arm64_Debug
@ -117,11 +157,11 @@ stages:
linuxPortable: true linuxPortable: true
# Never run tests on arm64 # Never run tests on arm64
runTests: false runTests: false
- template: eng/build.yml - template: eng/build.yml@self
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_musl_Debug_x64 jobName: Build_Linux_musl_Debug_x64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode' container: alpine319WithNode
buildConfiguration: Debug buildConfiguration: Debug
buildArchitecture: x64 buildArchitecture: x64
runtimeIdentifier: 'linux-musl-x64' runtimeIdentifier: 'linux-musl-x64'
@ -129,7 +169,7 @@ stages:
additionalBuildParameters: '/p:HostOSName="linux-musl"' additionalBuildParameters: '/p:HostOSName="linux-musl"'
linuxPortable: false linuxPortable: false
runTests: true runTests: true
- template: eng/build.yml - template: eng/build.yml@self
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_LinuxPortable_Release_x64 jobName: Build_LinuxPortable_Release_x64
@ -139,8 +179,7 @@ stages:
runTests: true runTests: true
# MacOS # MacOS
- template: eng/build.yml@self
- template: eng/build.yml
parameters: parameters:
agentOs: Darwin agentOs: Darwin
jobName: Build_Release_x64 jobName: Build_Release_x64
@ -148,13 +187,10 @@ stages:
buildArchitecture: x64 buildArchitecture: x64
runTests: true runTests: true
## Official/PGO instrumentation Builds # Official/PGO instrumentation Builds
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
# Windows
## Windows - template: eng/build.yml@self
- template: eng/build.yml
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
jobName: Build_Release_x64 jobName: Build_Release_x64
@ -162,14 +198,14 @@ stages:
buildArchitecture: x64 buildArchitecture: x64
additionalBuildParameters: '/p:PublishInternalAsset=true' additionalBuildParameters: '/p:PublishInternalAsset=true'
runTests: false runTests: false
- template: eng/build.yml - template: eng/build.yml@self
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
jobName: Build_Release_x86 jobName: Build_Release_x86
buildConfiguration: Release buildConfiguration: Release
buildArchitecture: x86 buildArchitecture: x86
runTests: false runTests: false
- template: eng/build.yml - template: eng/build.yml@self
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
jobName: Build_Release_arm64 jobName: Build_Release_arm64
@ -177,9 +213,8 @@ stages:
buildArchitecture: arm64 buildArchitecture: arm64
runTests: false runTests: false
## Linux # Linux
- template: eng/build.yml@self
- template: eng/build.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Arm_Release jobName: Build_Arm_Release
@ -188,7 +223,7 @@ stages:
runtimeIdentifier: 'linux-arm' runtimeIdentifier: 'linux-arm'
linuxPortable: true linuxPortable: true
runTests: false runTests: false
- template: eng/build.yml - template: eng/build.yml@self
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Arm64_Release jobName: Build_Arm64_Release
@ -197,18 +232,18 @@ stages:
runtimeIdentifier: 'linux-arm64' runtimeIdentifier: 'linux-arm64'
linuxPortable: true linuxPortable: true
runTests: false runTests: false
- template: eng/build.yml - template: eng/build.yml@self
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_musl_Release_arm jobName: Build_Linux_musl_Release_arm
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-cross-arm-alpine' container: ubuntu2204CrossArmAlpine
buildConfiguration: Release buildConfiguration: Release
buildArchitecture: arm buildArchitecture: arm
runtimeIdentifier: 'linux-musl-arm' runtimeIdentifier: 'linux-musl-arm'
additionalBuildParameters: '/p:OSName="linux-musl"' additionalBuildParameters: '/p:OSName="linux-musl"'
linuxPortable: false linuxPortable: false
runTests: false runTests: false
- template: eng/build.yml - template: eng/build.yml@self
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_musl_Release_arm64 jobName: Build_Linux_musl_Release_arm64
@ -218,11 +253,11 @@ stages:
additionalBuildParameters: '/p:OSName="linux-musl"' additionalBuildParameters: '/p:OSName="linux-musl"'
linuxPortable: false linuxPortable: false
runTests: false runTests: false
- template: eng/build.yml - template: eng/build.yml@self
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_musl_Release_x64 jobName: Build_Linux_musl_Release_x64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode' container: alpine319WithNode
buildConfiguration: Release buildConfiguration: Release
buildArchitecture: x64 buildArchitecture: x64
runtimeIdentifier: 'linux-musl-x64' runtimeIdentifier: 'linux-musl-x64'
@ -230,11 +265,11 @@ stages:
additionalBuildParameters: '/p:HostOSName="linux-musl"' additionalBuildParameters: '/p:HostOSName="linux-musl"'
linuxPortable: false linuxPortable: false
runTests: false runTests: false
- template: eng/build.yml - template: eng/build.yml@self
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_Portable_Deb_Release_x64 jobName: Build_Linux_Portable_Deb_Release_x64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-debpkg' container: ubuntu2204DebPkg
buildConfiguration: Release buildConfiguration: Release
buildArchitecture: x64 buildArchitecture: x64
# Do not publish zips and tarballs. The linux-x64 binaries are # Do not publish zips and tarballs. The linux-x64 binaries are
@ -242,11 +277,11 @@ stages:
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:BuildSdkDeb=true' additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:BuildSdkDeb=true'
linuxPortable: true linuxPortable: true
runTests: false runTests: false
- template: eng/build.yml - template: eng/build.yml@self
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_Portable_Rpm_Release_x64 jobName: Build_Linux_Portable_Rpm_Release_x64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-fpm' container: cblMariner20Fpm
buildConfiguration: Release buildConfiguration: Release
buildArchitecture: x64 buildArchitecture: x64
# Do not publish zips and tarballs. The linux-x64 binaries are # Do not publish zips and tarballs. The linux-x64 binaries are
@ -254,11 +289,11 @@ stages:
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:IsRPMBasedDistro=true' additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:IsRPMBasedDistro=true'
linuxPortable: true linuxPortable: true
runTests: false runTests: false
- template: eng/build.yml - template: eng/build.yml@self
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_Portable_Rpm_Release_Arm64 jobName: Build_Linux_Portable_Rpm_Release_Arm64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-fpm' container: cblMariner20Fpm
buildConfiguration: Release buildConfiguration: Release
buildArchitecture: arm64 buildArchitecture: arm64
runtimeIdentifier: 'linux-arm64' runtimeIdentifier: 'linux-arm64'
@ -267,7 +302,7 @@ stages:
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:CLIBUILD_SKIP_TESTS=true /p:IsRPMBasedDistro=true' additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:CLIBUILD_SKIP_TESTS=true /p:IsRPMBasedDistro=true'
linuxPortable: true linuxPortable: true
runTests: false runTests: false
- template: eng/build.yml - template: eng/build.yml@self
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_LinuxPortable_Release_x64 jobName: Build_LinuxPortable_Release_x64
@ -277,15 +312,14 @@ stages:
runTests: false runTests: false
# MacOS # MacOS
- template: eng/build.yml@self
- template: eng/build.yml
parameters: parameters:
agentOs: Darwin agentOs: Darwin
jobName: Build_Release_x64 jobName: Build_Release_x64
buildConfiguration: Release buildConfiguration: Release
buildArchitecture: x64 buildArchitecture: x64
runTests: false runTests: false
- template: eng/build.yml - template: eng/build.yml@self
parameters: parameters:
agentOs: Darwin agentOs: Darwin
jobName: Build_Release_arm64 jobName: Build_Release_arm64
@ -294,9 +328,8 @@ stages:
buildArchitecture: arm64 buildArchitecture: arm64
runTests: false runTests: false
## Windows PGO Instrumentation builds # Windows PGO Instrumentation
- template: eng/build.yml@self
- template: eng/build.yml
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
pgoInstrument: true pgoInstrument: true
@ -305,7 +338,7 @@ stages:
buildArchitecture: x64 buildArchitecture: x64
additionalBuildParameters: '/p:PublishInternalAsset=true' additionalBuildParameters: '/p:PublishInternalAsset=true'
runTests: false runTests: false
- template: eng/build.yml - template: eng/build.yml@self
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
pgoInstrument: true pgoInstrument: true
@ -313,7 +346,7 @@ stages:
buildConfiguration: Release buildConfiguration: Release
buildArchitecture: x86 buildArchitecture: x86
runTests: false runTests: false
- template: eng/build.yml - template: eng/build.yml@self
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
pgoInstrument: true pgoInstrument: true
@ -322,9 +355,8 @@ stages:
buildArchitecture: arm64 buildArchitecture: arm64
runTests: false runTests: false
## Linux PGO Instrumentation builds # Linux PGO Instrumentation
- template: eng/build.yml@self
- template: eng/build.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
pgoInstrument: true pgoInstrument: true
@ -333,8 +365,7 @@ stages:
buildArchitecture: x64 buildArchitecture: x64
linuxPortable: true linuxPortable: true
runTests: false runTests: false
- template: eng/build.yml@self
- template: eng/build.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
pgoInstrument: true pgoInstrument: true
@ -344,18 +375,19 @@ stages:
linuxPortable: true linuxPortable: true
runTests: false runTests: false
- template: /eng/common/templates/jobs/source-build.yml # Source Build
- template: /eng/common/templates-official/jobs/source-build.yml@self
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- stage: Publish - stage: Publish
dependsOn: dependsOn:
- Build - Build
jobs: jobs:
- template: /eng/common/templates/job/publish-build-assets.yml - template: /eng/common/templates-official/job/publish-build-assets.yml@self
parameters: parameters:
publishUsingPipelines: true publishUsingPipelines: true
publishAssetsImmediately: true publishAssetsImmediately: true
pool: pool:
${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: $(DncEngInternalBuildPool) name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals windows.vs2022.amd64 image: 1es-windows-2022
os: windows

View file

@ -1,3 +1,5 @@
# Pipeline: https://dev.azure.com/dnceng-public/public/_build?definitionId=20
trigger: trigger:
batch: true batch: true
branches: branches:
@ -59,7 +61,7 @@ stages:
## Windows ## Windows
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
jobName: Build_Debug_x64 jobName: Build_Debug_x64
@ -70,7 +72,7 @@ stages:
## Linux ## Linux
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Ubuntu_22_04_Debug_x64 jobName: Build_Ubuntu_22_04_Debug_x64
@ -79,7 +81,7 @@ stages:
buildArchitecture: x64 buildArchitecture: x64
linuxPortable: true linuxPortable: true
runTests: true runTests: true
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Fedora_39_Debug_x64 jobName: Build_Fedora_39_Debug_x64
@ -88,7 +90,7 @@ stages:
buildArchitecture: x64 buildArchitecture: x64
linuxPortable: true linuxPortable: true
runTests: true runTests: true
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_CentOS_8_Stream_Debug_x64 jobName: Build_CentOS_8_Stream_Debug_x64
@ -97,7 +99,7 @@ stages:
buildArchitecture: x64 buildArchitecture: x64
linuxPortable: false linuxPortable: false
runTests: true runTests: true
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Debian_11_Debug_x64 jobName: Build_Debian_11_Debug_x64
@ -107,7 +109,7 @@ stages:
additionalBuildParameters: '/p:BuildSdkDeb=true' additionalBuildParameters: '/p:BuildSdkDeb=true'
linuxPortable: false linuxPortable: false
runTests: true runTests: true
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Arm64_Debug jobName: Build_Arm64_Debug
@ -117,7 +119,7 @@ stages:
linuxPortable: true linuxPortable: true
# Never run tests on arm64 # Never run tests on arm64
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_musl_Debug_x64 jobName: Build_Linux_musl_Debug_x64
@ -129,7 +131,7 @@ stages:
additionalBuildParameters: '/p:HostOSName="linux-musl"' additionalBuildParameters: '/p:HostOSName="linux-musl"'
linuxPortable: false linuxPortable: false
runTests: true runTests: true
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_LinuxPortable_Release_x64 jobName: Build_LinuxPortable_Release_x64
@ -140,7 +142,7 @@ stages:
# MacOS # MacOS
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Darwin agentOs: Darwin
jobName: Build_Release_x64 jobName: Build_Release_x64
@ -154,7 +156,7 @@ stages:
## Windows ## Windows
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
jobName: Build_Release_x64 jobName: Build_Release_x64
@ -162,14 +164,14 @@ stages:
buildArchitecture: x64 buildArchitecture: x64
additionalBuildParameters: '/p:PublishInternalAsset=true' additionalBuildParameters: '/p:PublishInternalAsset=true'
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
jobName: Build_Release_x86 jobName: Build_Release_x86
buildConfiguration: Release buildConfiguration: Release
buildArchitecture: x86 buildArchitecture: x86
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
jobName: Build_Release_arm64 jobName: Build_Release_arm64
@ -179,7 +181,7 @@ stages:
## Linux ## Linux
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Arm_Release jobName: Build_Arm_Release
@ -188,7 +190,7 @@ stages:
runtimeIdentifier: 'linux-arm' runtimeIdentifier: 'linux-arm'
linuxPortable: true linuxPortable: true
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Arm64_Release jobName: Build_Arm64_Release
@ -197,7 +199,7 @@ stages:
runtimeIdentifier: 'linux-arm64' runtimeIdentifier: 'linux-arm64'
linuxPortable: true linuxPortable: true
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_musl_Release_arm jobName: Build_Linux_musl_Release_arm
@ -208,7 +210,7 @@ stages:
additionalBuildParameters: '/p:OSName="linux-musl"' additionalBuildParameters: '/p:OSName="linux-musl"'
linuxPortable: false linuxPortable: false
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_musl_Release_arm64 jobName: Build_Linux_musl_Release_arm64
@ -218,7 +220,7 @@ stages:
additionalBuildParameters: '/p:OSName="linux-musl"' additionalBuildParameters: '/p:OSName="linux-musl"'
linuxPortable: false linuxPortable: false
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_musl_Release_x64 jobName: Build_Linux_musl_Release_x64
@ -230,7 +232,7 @@ stages:
additionalBuildParameters: '/p:HostOSName="linux-musl"' additionalBuildParameters: '/p:HostOSName="linux-musl"'
linuxPortable: false linuxPortable: false
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_Portable_Deb_Release_x64 jobName: Build_Linux_Portable_Deb_Release_x64
@ -242,7 +244,7 @@ stages:
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:BuildSdkDeb=true' additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:BuildSdkDeb=true'
linuxPortable: true linuxPortable: true
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_Portable_Rpm_Release_x64 jobName: Build_Linux_Portable_Rpm_Release_x64
@ -254,7 +256,7 @@ stages:
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:IsRPMBasedDistro=true' additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:IsRPMBasedDistro=true'
linuxPortable: true linuxPortable: true
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_Portable_Rpm_Release_Arm64 jobName: Build_Linux_Portable_Rpm_Release_Arm64
@ -267,7 +269,7 @@ stages:
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:CLIBUILD_SKIP_TESTS=true /p:IsRPMBasedDistro=true' additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:CLIBUILD_SKIP_TESTS=true /p:IsRPMBasedDistro=true'
linuxPortable: true linuxPortable: true
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_LinuxPortable_Release_x64 jobName: Build_LinuxPortable_Release_x64
@ -278,14 +280,14 @@ stages:
# MacOS # MacOS
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Darwin agentOs: Darwin
jobName: Build_Release_x64 jobName: Build_Release_x64
buildConfiguration: Release buildConfiguration: Release
buildArchitecture: x64 buildArchitecture: x64
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Darwin agentOs: Darwin
jobName: Build_Release_arm64 jobName: Build_Release_arm64
@ -296,7 +298,7 @@ stages:
## Windows PGO Instrumentation builds ## Windows PGO Instrumentation builds
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
pgoInstrument: true pgoInstrument: true
@ -305,7 +307,7 @@ stages:
buildArchitecture: x64 buildArchitecture: x64
additionalBuildParameters: '/p:PublishInternalAsset=true' additionalBuildParameters: '/p:PublishInternalAsset=true'
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
pgoInstrument: true pgoInstrument: true
@ -313,7 +315,7 @@ stages:
buildConfiguration: Release buildConfiguration: Release
buildArchitecture: x86 buildArchitecture: x86
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
pgoInstrument: true pgoInstrument: true
@ -324,7 +326,7 @@ stages:
## Linux PGO Instrumentation builds ## Linux PGO Instrumentation builds
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
pgoInstrument: true pgoInstrument: true
@ -334,7 +336,7 @@ stages:
linuxPortable: true linuxPortable: true
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
pgoInstrument: true pgoInstrument: true

261
eng/build-pr.yml Normal file
View file

@ -0,0 +1,261 @@
parameters:
# Agent OS identifier and used as job name
- name: agentOs
type: string
# Job name
- name: jobName
type: string
# Container to run the build in, if any
- name: container
type: string
default: ''
# Job timeout
- name: timeoutInMinutes
type: number
default: 180
# Build configuration (Debug, Release)
- name: buildConfiguration
type: string
values:
- Debug
- Release
# Build architecture
- name: buildArchitecture
type: string
values:
- arm
- arm64
- x64
- x86
# Linux portable. If true, passes portable switch to build
- name: linuxPortable
type: boolean
default: false
# Runtime Identifier
- name: runtimeIdentifier
type: string
default: ''
# UI lang
- name: dotnetCLIUILanguage
type: string
default: ''
# Additional parameters
- name: additionalBuildParameters
type: string
default: ''
# Run tests
- name: runTests
type: boolean
default: true
# PGO instrumentation jobs
- name: pgoInstrument
type: boolean
default: false
- name: isBuiltFromVmr
displayName: True when build is running from dotnet/dotnet
type: boolean
default: false
jobs:
- template: common/templates/job/job.yml
parameters:
# Set up the name of the job.
${{ if parameters.pgoInstrument }}:
name: PGO_${{ parameters.agentOs }}_${{ parameters.jobName }}
${{ if not(parameters.pgoInstrument) }}:
name: ${{ parameters.agentOs }}_${{ parameters.jobName }}
## Set up the pool/machine info to be used based on the Agent OS
${{ if eq(parameters.agentOs, 'Windows_NT') }}:
enableMicrobuild: true
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: $(DncEngPublicBuildPool)
demands: ImageOverride -equals windows.vs2022.amd64.open
${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals windows.vs2022.amd64
${{ if eq(parameters.agentOs, 'Linux') }}:
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: $(DncEngPublicBuildPool)
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64
container: ${{ parameters.container }}
${{ if eq(parameters.agentOs, 'Darwin') }}:
pool:
vmImage: 'macOS-latest'
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
${{ if parameters.isBuiltFromVmr }}:
enableSbom: false
${{ else }}:
enablePublishBuildAssets: true
enablePublishUsingPipelines: true
enableTelemetry: true
helixRepo: dotnet/installer
workspace:
clean: all
# Test parameters
variables:
- ${{ if eq(parameters.agentOs, 'Windows_NT') }}:
- _PackArg: '-pack'
- ${{ if parameters.runTests }}:
- _TestArg: '-test'
- ${{ else }}:
- _TestArg: ''
- ${{ if ne(parameters.agentOs, 'Windows_NT') }}:
- _PackArg: '--pack'
- ${{ if parameters.runTests }}:
- _TestArg: '--test'
- ${{ else }}:
- _TestArg: ''
- ${{ if parameters.pgoInstrument }}:
- _PgoInstrument: '/p:PgoInstrument=true'
- _PackArg: ''
- ${{ else }}:
- _PgoInstrument: ''
- ${{ if parameters.linuxPortable }}:
- _LinuxPortable: '--linux-portable'
- ${{ else }}:
- _LinuxPortable: ''
- ${{ if ne(parameters.runtimeIdentifier, '') }}:
- _RuntimeIdentifier: '--runtime-id ${{ parameters.runtimeIdentifier }}'
- ${{ else }}:
- _RuntimeIdentifier: ''
- _AgentOSName: ${{ parameters.agentOs }}
- _TeamName: Roslyn-Project-System
- _SignType: test
- _BuildArgs: '/p:DotNetSignType=$(_SignType) $(_PgoInstrument)'
- ${{ if parameters.isBuiltFromVmr }}:
- installerRoot: '$(Build.SourcesDirectory)/src/installer'
- _SignType: test
- _PushToVSFeed: false
- _BuildArgs: /p:OfficialBuildId=$(BUILD.BUILDNUMBER)
/p:TeamName=$(_TeamName)
/p:DotNetPublishUsingPipelines=true
/p:PublishToSymbolServer=false
$(_PgoInstrument)
- ${{ else }}:
- installerRoot: '$(Build.SourcesDirectory)'
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- group: DotNet-HelixApi-Access
- _PushToVSFeed: true
- _SignType: real
- _BuildArgs: /p:OfficialBuildId=$(BUILD.BUILDNUMBER)
/p:DotNetSignType=$(_SignType)
/p:TeamName=$(_TeamName)
/p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines)
$(_PgoInstrument)
- template: /eng/common/templates/variables/pool-providers.yml
steps:
- checkout: self
clean: true
- ${{ if eq(parameters.agentOs, 'Windows_NT') }}:
- ${{ if and(not(parameters.isBuiltFromVmr), ne(variables['System.TeamProject'], 'public')) }}:
- task: PowerShell@2
displayName: Setup Private Feeds Credentials
inputs:
filePath: $(installerRoot)/eng/common/SetupNugetSources.ps1
arguments: -ConfigFile $(installerRoot)/NuGet.config -Password $Env:Token
env:
Token: $(dn-bot-dnceng-artifact-feeds-rw)
- script: $(installerRoot)/build.cmd
$(_TestArg) $(_PackArg)
-publish -ci -sign
-Configuration ${{ parameters.buildConfiguration }}
-Architecture ${{ parameters.buildArchitecture }}
$(_BuildArgs)
${{ parameters.additionalBuildParameters }}
$(_InternalRuntimeDownloadArgs)
displayName: Build
env:
DOTNET_CLI_UI_LANGUAGE: ${{ parameters.dotnetCLIUILanguage }}
- ${{ if ne(parameters.agentOs, 'Windows_NT') }}:
- ${{ if and(not(parameters.isBuiltFromVmr), ne(variables['System.TeamProject'], 'public')) }}:
- task: Bash@3
displayName: Setup Private Feeds Credentials
inputs:
filePath: $(installerRoot)/eng/common/SetupNugetSources.sh
arguments: $(installerRoot)/NuGet.config $Token
env:
Token: $(dn-bot-dnceng-artifact-feeds-rw)
- ${{ if eq(parameters.agentOs, 'Linux') }}:
- script: $(installerRoot)/build.sh
$(_TestArg) $(_PackArg)
--publish --ci
--noprettyprint
--configuration ${{ parameters.buildConfiguration }}
--architecture ${{ parameters.buildArchitecture }}
$(_LinuxPortable)
$(_RuntimeIdentifier)
$(_BuildArgs)
${{ parameters.additionalBuildParameters }}
$(_InternalRuntimeDownloadArgs)
displayName: Build
- ${{ if or(eq(parameters.agentOs, 'Darwin'), eq(parameters.agentOs, 'FreeBSD')) }}:
- script: $(installerRoot)/build.sh
$(_TestArg)
--pack --publish --ci
--noprettyprint
--configuration ${{ parameters.buildConfiguration }}
--architecture ${{ parameters.buildArchitecture }}
$(_RuntimeIdentifier)
$(_BuildArgs)
${{ parameters.additionalBuildParameters }}
$(_InternalRuntimeDownloadArgs)
displayName: Build
- task: PublishTestResults@2
displayName: Publish Test Results
inputs:
testRunner: XUnit
testResultsFiles: 'artifacts/TestResults/${{ parameters.buildConfiguration }}/*.xml'
testRunTitle: '$(_AgentOSName)_$(Agent.JobName)'
platform: '$(BuildPlatform)'
configuration: '${{ parameters.buildConfiguration }}'
condition: ne(variables['_TestArg'], '')
- task: CopyFiles@2
displayName: Gather Logs
inputs:
SourceFolder: '$(installerRoot)/artifacts'
Contents: |
log/${{ parameters.buildConfiguration }}/**/*
TestResults/${{ parameters.buildConfiguration }}/**/*
TargetFolder: '$(Build.ArtifactStagingDirectory)'
continueOnError: true
condition: always()
- task: PublishBuildArtifacts@1
displayName: Publish Logs to VSTS
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: '$(_AgentOSName)_$(Agent.JobName)_$(Build.BuildNumber)'
publishLocation: Container
continueOnError: true
condition: always()

View file

@ -69,7 +69,7 @@ parameters:
default: false default: false
jobs: jobs:
- template: common/templates/job/job.yml - template: common/templates-official/job/job.yml
parameters: parameters:
# Set up the name of the job. # Set up the name of the job.
${{ if parameters.pgoInstrument }}: ${{ if parameters.pgoInstrument }}:
@ -77,28 +77,34 @@ jobs:
${{ if not(parameters.pgoInstrument) }}: ${{ if not(parameters.pgoInstrument) }}:
name: ${{ parameters.agentOs }}_${{ parameters.jobName }} name: ${{ parameters.agentOs }}_${{ parameters.jobName }}
## Set up the pool/machine info to be used based on the Agent OS # Set up the pool/machine info to be used based on the Agent OS
${{ if eq(parameters.agentOs, 'Windows_NT') }}: ${{ if eq(parameters.agentOs, 'Windows_NT') }}:
enableMicrobuild: true enableMicrobuild: true
pool: pool:
${{ if eq(variables['System.TeamProject'], 'public') }}: ${{ if eq(variables['System.TeamProject'], 'public') }}:
name: $(DncEngPublicBuildPool) name: $(DncEngPublicBuildPool)
demands: ImageOverride -equals windows.vs2022.amd64.open image: 1es-windows-2022-open
os: windows
${{ if eq(variables['System.TeamProject'], 'internal') }}: ${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: $(DncEngInternalBuildPool) name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals windows.vs2022.amd64 image: 1es-windows-2022
os: windows
${{ if eq(parameters.agentOs, 'Linux') }}: ${{ if eq(parameters.agentOs, 'Linux') }}:
pool: pool:
${{ if eq(variables['System.TeamProject'], 'public') }}: ${{ if eq(variables['System.TeamProject'], 'public') }}:
name: $(DncEngPublicBuildPool) name: $(DncEngPublicBuildPool)
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open image: 1es-ubuntu-2004-open
os: linux
${{ if eq(variables['System.TeamProject'], 'internal') }}: ${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: $(DncEngInternalBuildPool) name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 image: 1es-ubuntu-2204
os: linux
container: ${{ parameters.container }} container: ${{ parameters.container }}
${{ if eq(parameters.agentOs, 'Darwin') }}: ${{ if eq(parameters.agentOs, 'Darwin') }}:
pool: pool:
vmImage: 'macOS-latest' name: Azure Pipelines
image: macOS-latest
os: macOS
timeoutInMinutes: ${{ parameters.timeoutInMinutes }} timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
${{ if parameters.isBuiltFromVmr }}: ${{ if parameters.isBuiltFromVmr }}:
@ -111,8 +117,8 @@ jobs:
workspace: workspace:
clean: all clean: all
# Test parameters
variables: variables:
# Test variables
- ${{ if eq(parameters.agentOs, 'Windows_NT') }}: - ${{ if eq(parameters.agentOs, 'Windows_NT') }}:
- _PackArg: '-pack' - _PackArg: '-pack'
- ${{ if parameters.runTests }}: - ${{ if parameters.runTests }}:
@ -168,7 +174,7 @@ jobs:
/p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines) /p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines)
$(_PgoInstrument) $(_PgoInstrument)
- template: /eng/common/templates/variables/pool-providers.yml - template: /eng/common/templates-official/variables/pool-providers.yml
steps: steps:
- checkout: self - checkout: self
@ -251,7 +257,7 @@ jobs:
continueOnError: true continueOnError: true
condition: always() condition: always()
- task: PublishBuildArtifacts@1 - task: 1ES.PublishBuildArtifacts@1
displayName: Publish Logs to VSTS displayName: Publish Logs to VSTS
inputs: inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)' PathtoPublish: '$(Build.ArtifactStagingDirectory)'

View file

@ -1,6 +1,4 @@
# # Pipeline: https://dnceng.visualstudio.com/internal/_build?definitionId=1224
# See https://learn.microsoft.com/en-us/azure/devops/pipelines/yaml-schema for details on this file.
#
schedules: schedules:
# Cron timezone is UTC. # Cron timezone is UTC.

View file

@ -8,7 +8,7 @@
<PropertyGroup> <PropertyGroup>
<RuntimeNETCoreAppPackageName>microsoft.netcore.app.runtime.$(SharedFrameworkRid)</RuntimeNETCoreAppPackageName> <RuntimeNETCoreAppPackageName>microsoft.netcore.app.runtime.$(SharedFrameworkRid)</RuntimeNETCoreAppPackageName>
<RuntimeNETCrossgenPackageName>microsoft.netcore.app.crossgen2.$(Crossgen2Rid)</RuntimeNETCrossgenPackageName> <RuntimeNETCrossgenPackageName>microsoft.netcore.app.crossgen2.$(Crossgen2Rid)</RuntimeNETCrossgenPackageName>
<CrossgenPath>$(NuGetPackageRoot)/$(RuntimeNETCrossgenPackageName)/$(MicrosoftNETCoreAppRuntimePackageVersion)/tools/crossgen2$(ExeExtension)</CrossgenPath> <CrossgenPath>$(NuGetPackageRoot)$(RuntimeNETCrossgenPackageName)/$(MicrosoftNETCoreAppRuntimePackageVersion)/tools/crossgen2$(ExeExtension)</CrossgenPath>
<!-- When ingesting stable pgo instrumented binaries, the shared framework will be a non-stable version, <!-- When ingesting stable pgo instrumented binaries, the shared framework will be a non-stable version,
as will the archive file names themselves. --> as will the archive file names themselves. -->
<SharedFrameworkNameVersionPath Condition=" '$(PgoInstrument)' != 'true' ">$(RedistLayoutPath)shared/$(SharedFrameworkName)/$(MicrosoftNETCoreAppRuntimePackageVersion)</SharedFrameworkNameVersionPath> <SharedFrameworkNameVersionPath Condition=" '$(PgoInstrument)' != 'true' ">$(RedistLayoutPath)shared/$(SharedFrameworkName)/$(MicrosoftNETCoreAppRuntimePackageVersion)</SharedFrameworkNameVersionPath>