Skip to content

Commit 4039b45

Browse files
authored
Start moving over to official templates (#99433)
* Start moving over to official templates * Parameterize runtime-inner-loop * Use default false for isOfficialBuild in pipeline-with-resources * Respond to PR comments * Code review comments * Use default template args
1 parent dc01e99 commit 4039b45

19 files changed

+353
-184
lines changed

eng/pipelines/common/global-build-job.yml

+17-13
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,10 @@ parameters:
3232
enableRichCodeNavigation: false
3333
richCodeNavigationLanguage: 'csharp'
3434
disableComponentGovernance: ''
35+
templatePath: 'templates'
3536

3637
jobs:
37-
- template: /eng/common/templates/job/job.yml
38+
- template: /eng/common/${{ parameters.templatePath }}/job/job.yml
3839
parameters:
3940
${{ if eq(parameters.hostedOs, '') }}:
4041
name: ${{ format('build_{0}{1}_{2}_{3}_{4}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig, parameters.nameSuffix) }}
@@ -127,6 +128,7 @@ jobs:
127128

128129
- ${{ each variable in parameters.variables }}:
129130
- ${{ variable }}
131+
130132
steps:
131133
- ${{ if eq(parameters.osGroup, 'windows') }}:
132134
- template: /eng/pipelines/common/templates/disable-vsupdate-or-failfast.yml
@@ -167,7 +169,7 @@ jobs:
167169
path: '$(Build.SourcesDirectory)/artifacts/obj/mono/offsetfiles'
168170

169171
- ${{ if eq(parameters.isSourceBuild, true) }}:
170-
- template: /eng/common/templates/steps/source-build.yml
172+
- template: /eng/common/${{ parameters.templatePath }}/steps/source-build.yml
171173
parameters:
172174
platform:
173175
baseOS: ${{ parameters.baseOS }}
@@ -271,14 +273,16 @@ jobs:
271273
displayName: Collect vslogs on exit
272274
condition: always()
273275

274-
- task: PublishBuildArtifacts@1
275-
displayName: Publish Logs
276-
inputs:
277-
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/'
278-
PublishLocation: Container
279-
${{ if notin(parameters.osGroup, 'browser', 'wasi') }}:
280-
ArtifactName: Logs_Build_Attempt$(System.JobAttempt)_${{ parameters.osGroup }}_${{ parameters.osSubGroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}_${{ parameters.nameSuffix }}
281-
${{ if in(parameters.osGroup, 'browser', 'wasi') }}:
282-
ArtifactName: Logs_Build_Attempt$(System.JobAttempt)_${{ parameters.osGroup }}_${{ parameters.archType }}_${{ parameters.hostedOs }}_${{ parameters.buildConfig }}_${{ parameters.nameSuffix }}
283-
continueOnError: true
284-
condition: always()
276+
- template: /eng/pipelines/common/templates/publish-build-artifacts.yml
277+
parameters:
278+
isOfficialBuild: ${{ parameters.isOfficialBuild }}
279+
displayName: Publish Logs
280+
inputs:
281+
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/'
282+
PublishLocation: Container
283+
${{ if notin(parameters.osGroup, 'browser', 'wasi') }}:
284+
ArtifactName: Logs_Build_Attempt$(System.JobAttempt)_${{ parameters.osGroup }}_${{ parameters.osSubGroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}_${{ parameters.nameSuffix }}
285+
${{ if in(parameters.osGroup, 'browser', 'wasi') }}:
286+
ArtifactName: Logs_Build_Attempt$(System.JobAttempt)_${{ parameters.osGroup }}_${{ parameters.archType }}_${{ parameters.hostedOs }}_${{ parameters.buildConfig }}_${{ parameters.nameSuffix }}
287+
continueOnError: true
288+
condition: always()
Original file line numberDiff line numberDiff line change
@@ -1,114 +1,124 @@
11
parameters:
22
- name: stages
33
type: stageList
4-
5-
resources:
6-
containers:
7-
- container: linux_arm
8-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm
9-
env:
10-
ROOTFS_DIR: /crossrootfs/arm
11-
12-
- container: linux_armv6
13-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-20.04-cross-armv6-raspbian-10
14-
env:
15-
ROOTFS_DIR: /crossrootfs/armv6
16-
17-
- container: linux_arm64
18-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-biarch-amd64-arm64
19-
env:
20-
ROOTFS_HOST_DIR: /crossrootfs/x64
21-
ROOTFS_DIR: /crossrootfs/arm64
22-
23-
- container: linux_musl_x64
24-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-amd64-alpine
25-
env:
26-
ROOTFS_DIR: /crossrootfs/x64
27-
28-
- container: linux_musl_arm
29-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm-alpine
30-
env:
31-
ROOTFS_DIR: /crossrootfs/arm
32-
33-
- container: linux_musl_arm64
34-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm64-alpine
35-
env:
36-
ROOTFS_DIR: /crossrootfs/arm64
37-
38-
# This container contains all required toolsets to build for Android and for Linux with bionic libc.
39-
- container: linux_bionic
40-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-android-amd64
41-
42-
# This container contains all required toolsets to build for Android as well as tooling to build docker images.
43-
- container: android_docker
44-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-android-docker
45-
46-
- container: linux_x64
47-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-amd64
48-
env:
49-
ROOTFS_DIR: /crossrootfs/x64
50-
51-
- container: linux_x86
52-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-x86
53-
env:
54-
ROOTFS_DIR: /crossrootfs/x86
55-
56-
- container: linux_x64_dev_innerloop
57-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04
58-
59-
# We use a CentOS Stream 8 image here to test building from source on CentOS Stream 8.
60-
- container: SourceBuild_centos_x64
61-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8
62-
63-
# AlmaLinux 8 is a RHEL 8 rebuild, so we use it to test building from source on RHEL 8.
64-
- container: SourceBuild_linux_x64
65-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:almalinux-8-source-build
66-
67-
- container: linux_s390x
68-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-cross-s390x
69-
env:
70-
ROOTFS_DIR: /crossrootfs/s390x
71-
72-
- container: linux_ppc64le
73-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-cross-ppc64le
74-
env:
75-
ROOTFS_DIR: /crossrootfs/ppc64le
76-
77-
- container: linux_riscv64
78-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-cross-riscv64
79-
env:
80-
ROOTFS_DIR: /crossrootfs/riscv64
81-
82-
- container: debian-12-gcc13-amd64
83-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-gcc13-amd64
84-
85-
- container: linux_x64_llvmaot
86-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8
87-
88-
- container: browser_wasm
89-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-webassembly-20230913040940-1edc1c6
90-
env:
91-
ROOTFS_DIR: /crossrootfs/x64
92-
93-
- container: wasi_wasm
94-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-webassembly
95-
env:
96-
ROOTFS_DIR: /crossrootfs/x64
97-
98-
- container: freebsd_x64
99-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-amd64-freebsd-13
100-
env:
101-
ROOTFS_DIR: /crossrootfs/x64
102-
103-
- container: tizen_armel
104-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-cross-armel-tizen
105-
env:
106-
ROOTFS_DIR: /crossrootfs/armel
107-
108-
- container: debpkg
109-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-debpkg
110-
111-
- container: rpmpkg
112-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-fpm
113-
114-
stages: ${{ parameters.stages }}
4+
- name: isOfficialBuild
5+
type: boolean
6+
default: false
7+
8+
extends:
9+
template: templateDispatch.yml
10+
parameters:
11+
${{ if parameters.isOfficialBuild }}:
12+
templatePath: template1es.yml
13+
${{ else }}:
14+
templatePath: templatePublic.yml
15+
16+
stages: ${{ parameters.stages }}
17+
18+
containers:
19+
linux_arm:
20+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm
21+
env:
22+
ROOTFS_DIR: /crossrootfs/arm
23+
24+
linux_armv6:
25+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-20.04-cross-armv6-raspbian-10
26+
env:
27+
ROOTFS_DIR: /crossrootfs/armv6
28+
29+
linux_arm64:
30+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-biarch-amd64-arm64
31+
env:
32+
ROOTFS_HOST_DIR: /crossrootfs/x64
33+
ROOTFS_DIR: /crossrootfs/arm64
34+
35+
linux_musl_x64:
36+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-amd64-alpine
37+
env:
38+
ROOTFS_DIR: /crossrootfs/x64
39+
40+
linux_musl_arm:
41+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm-alpine
42+
env:
43+
ROOTFS_DIR: /crossrootfs/arm
44+
45+
linux_musl_arm64:
46+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm64-alpine
47+
env:
48+
ROOTFS_DIR: /crossrootfs/arm64
49+
50+
# This container contains all required toolsets to build for Android and for Linux with bionic libc.
51+
linux_bionic:
52+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-android-amd64
53+
54+
# This container contains all required toolsets to build for Android as well as tooling to build docker images.
55+
android_docker:
56+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-android-docker
57+
58+
linux_x64:
59+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-amd64
60+
env:
61+
ROOTFS_DIR: /crossrootfs/x64
62+
63+
linux_x86:
64+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-x86
65+
env:
66+
ROOTFS_DIR: /crossrootfs/x86
67+
68+
linux_x64_dev_innerloop:
69+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04
70+
71+
# We use a CentOS Stream 8 image here to test building from source on CentOS Stream 8.
72+
SourceBuild_centos_x64:
73+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8
74+
75+
# AlmaLinux 8 is a RHEL 8 rebuild, so we use it to test building from source on RHEL 8.
76+
SourceBuild_linux_x64:
77+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:almalinux-8-source-build
78+
79+
linux_s390x:
80+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-cross-s390x
81+
env:
82+
ROOTFS_DIR: /crossrootfs/s390x
83+
84+
linux_ppc64le:
85+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-cross-ppc64le
86+
env:
87+
ROOTFS_DIR: /crossrootfs/ppc64le
88+
89+
linux_riscv64:
90+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-cross-riscv64
91+
env:
92+
ROOTFS_DIR: /crossrootfs/riscv64
93+
94+
debian-12-gcc13-amd64:
95+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-12-gcc13-amd64
96+
97+
linux_x64_llvmaot:
98+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8
99+
100+
browser_wasm:
101+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-webassembly-20230913040940-1edc1c6
102+
env:
103+
ROOTFS_DIR: /crossrootfs/x64
104+
105+
wasi_wasm:
106+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-webassembly
107+
env:
108+
ROOTFS_DIR: /crossrootfs/x64
109+
110+
freebsd_x64:
111+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-amd64-freebsd-13
112+
env:
113+
ROOTFS_DIR: /crossrootfs/x64
114+
115+
tizen_armel:
116+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-cross-armel-tizen
117+
env:
118+
ROOTFS_DIR: /crossrootfs/armel
119+
120+
debpkg:
121+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-debpkg
122+
123+
rpmpkg:
124+
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-fpm
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
parameters:
2+
- name: isOfficialBuild
3+
type: boolean
4+
- name: displayName
5+
type: string
6+
- name: inputs
7+
type: object
8+
- name: condition
9+
type: string
10+
default: ''
11+
12+
steps:
13+
- ${{ if parameters.isOfficialBuild }}:
14+
- task: 1ES.PublishBuildArtifacts@1
15+
displayName: ${{ parameters.displayName }}
16+
inputs: ${{ parameters.inputs }}
17+
condition: ${{ parameters.condition }}
18+
- ${{ else }}:
19+
- task: PublishBuildArtifacts@1
20+
displayName: ${{ parameters.displayName }}
21+
inputs: ${{ parameters.inputs }}
22+
condition: ${{ parameters.condition }}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
parameters:
2+
- name: displayName
3+
type: string
4+
- name: inputs
5+
type: object
6+
- name: isOfficialBuild
7+
type: boolean
8+
9+
steps:
10+
- ${{ if parameters.isOfficialBuild }}:
11+
- task: 1ES.PublishPipelineArtifact@1
12+
displayName: ${{ parameters.displayName }}
13+
inputs: ${{ parameters.inputs }}
14+
- ${{ else }}:
15+
- task: PublishPipelineArtifact@1
16+
displayName: ${{ parameters.displayName }}
17+
inputs: ${{ parameters.inputs }}

eng/pipelines/common/templates/runtimes/build-test-job.yml

+10-8
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ parameters:
1313
runtimeVariant: ''
1414
dependsOn: []
1515
crossBuild: false
16+
isOfficialBuild: false
1617

1718
### Build managed test components (native components are getting built as part
1819
### of the product build job).
@@ -137,12 +138,13 @@ jobs:
137138
artifactName: $(microsoftNetSdkIlArtifactName)
138139
displayName: 'Microsoft.NET.Sdk.IL package'
139140

140-
141141
# Publish Logs
142-
- task: PublishPipelineArtifact@1
143-
displayName: Publish Logs
144-
inputs:
145-
targetPath: $(Build.SourcesDirectory)/artifacts/log
146-
artifactName: '${{ parameters.runtimeFlavor }}_Common_Runtime_TestBuildLogs_Attempt$(System.JobAttempt)_AnyOS_AnyCPU_$(buildConfig)_${{ parameters.testGroup }}'
147-
continueOnError: true
148-
condition: always()
142+
- template: /eng/pipelines/common/templates/publish-pipeline-artifacts.yml
143+
parameters:
144+
displayName: Publish Logs
145+
isOfficialBuild: ${{ parameters.isOfficialBuild }}
146+
inputs:
147+
targetPath: $(Build.SourcesDirectory)/artifacts/log
148+
ArtifactName: '${{ parameters.runtimeFlavor }}_Common_Runtime_TestBuildLogs_Attempt$(System.JobAttempt)_AnyOS_AnyCPU_$(buildConfig)_${{ parameters.testGroup }}'
149+
continueOnError: true
150+
condition: always()

eng/pipelines/common/templates/runtimes/xplat-job.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,12 @@ parameters:
1919
enableMicrobuild: ''
2020
gatherAssetManifests: false
2121
disableComponentGovernance: ''
22+
templatePath: 'templates'
2223

2324
variables: {} ## any extra variables to add to the defaults defined below
2425

2526
jobs:
26-
- template: /eng/common/templates/job/job.yml
27+
- template: /eng/common/${{ parameters.templatePath }}/job/job.yml
2728
parameters:
2829

2930
name: ${{ parameters.name }}

0 commit comments

Comments
 (0)