Skip to content

Commit 56002b8

Browse files
Update common Docker engineering infrastructure with latest
1 parent 08c9b74 commit 56002b8

19 files changed

+542
-98
lines changed

eng/docker-tools/templates/jobs/build-images.yml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,14 @@ parameters:
44
matrix: {}
55
dockerClientOS: null
66
buildJobTimeout: 60
7-
commonInitStepsForMatrixAndBuild: []
7+
# Custom steps to set up ImageBuilder instead of pulling from MCR (e.g., bootstrap from source).
8+
# Runs before ImageBuilder pull. If non-empty, skips the default ImageBuilder pull.
89
customInitSteps: []
10+
# Custom steps that run after ImageBuilder is set up but before the build starts.
11+
# Use for build-specific initialization (e.g., setting variables, additional setup).
12+
customBuildInitSteps: []
913
publishConfig: null
14+
versionsRepoRef: ""
1015
noCache: false
1116
internalProjectName: null
1217
publicProjectName: null
@@ -29,12 +34,14 @@ jobs:
2934
imageInfoHostDir: $(Build.ArtifactStagingDirectory)/imageInfo
3035
imageInfoContainerDir: $(artifactsPath)/imageInfo
3136
steps:
32-
- ${{ parameters.commonInitStepsForMatrixAndBuild }}
33-
- template: /eng/docker-tools/templates/jobs/${{ format('../steps/init-docker-{0}.yml', parameters.dockerClientOS) }}@self
37+
- template: /eng/docker-tools/templates/steps/init-common.yml@self
3438
parameters:
39+
dockerClientOS: ${{ parameters.dockerClientOS }}
3540
publishConfig: ${{ parameters.publishConfig }}
41+
versionsRepoRef: ${{ parameters.versionsRepoRef }}
3642
cleanupDocker: true
37-
- ${{ parameters.customInitSteps }}
43+
customInitSteps: ${{ parameters.customInitSteps }}
44+
- ${{ parameters.customBuildInitSteps }}
3845
- template: /eng/docker-tools/templates/steps/set-image-info-path-var.yml@self
3946
parameters:
4047
publicSourceBranch: $(publicSourceBranch)
@@ -115,6 +122,7 @@ jobs:
115122
- template: /eng/docker-tools/templates/jobs/${{ format('../steps/test-images-{0}-client.yml', parameters.dockerClientOS) }}@self
116123
parameters:
117124
condition: ne(variables.testScriptPath, '')
125+
skipCommonInit: true
118126
- ${{ if and(eq(variables['System.TeamProject'], parameters.internalProjectName), ne(variables['Build.Reason'], 'PullRequest'), eq(parameters.dockerClientOS, 'linux')) }}:
119127
- template: /eng/docker-tools/templates/steps/publish-artifact.yml@self
120128
parameters:

eng/docker-tools/templates/jobs/copy-base-images-staging.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,24 @@ parameters:
88
- name: publishConfig
99
type: object
1010
default: null
11+
# Custom steps to set up ImageBuilder instead of pulling from MCR (e.g., bootstrap from source).
12+
# Runs before ImageBuilder pull. If non-empty, skips the default ImageBuilder pull.
1113
- name: customInitSteps
1214
type: stepList
1315
default: []
16+
# Custom steps that run after ImageBuilder is set up but before copy-base-images runs.
17+
- name: customCopyBaseImagesInitSteps
18+
type: stepList
19+
default: []
1420
- name: additionalOptions
1521
type: string
1622
default: ''
1723
- name: continueOnError
1824
type: string
1925
default: false
26+
- name: versionsRepoRef
27+
type: string
28+
default: ""
2029

2130
jobs:
2231
- template: /eng/docker-tools/templates/jobs/copy-base-images.yml@self
@@ -25,5 +34,7 @@ jobs:
2534
pool: ${{ parameters.pool }}
2635
publishConfig: ${{ parameters.publishConfig }}
2736
customInitSteps: ${{ parameters.customInitSteps }}
37+
customCopyBaseImagesInitSteps: ${{ parameters.customCopyBaseImagesInitSteps }}
2838
additionalOptions: ${{ parameters.additionalOptions }}
2939
acr: ${{ parameters.publishConfig.InternalMirrorRegistry }}
40+
versionsRepoRef: ${{ parameters.versionsRepoRef }}

eng/docker-tools/templates/jobs/copy-base-images.yml

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,15 @@ parameters:
1111
- name: acr
1212
type: object
1313
default: null
14+
# Custom steps to set up ImageBuilder instead of pulling from MCR (e.g., bootstrap from source).
15+
# Runs before ImageBuilder pull. If non-empty, skips the default ImageBuilder pull.
1416
- name: customInitSteps
1517
type: stepList
1618
default: []
19+
# Custom steps that run after ImageBuilder is set up but before copy-base-images runs.
20+
- name: customCopyBaseImagesInitSteps
21+
type: stepList
22+
default: []
1723
- name: additionalOptions
1824
type: string
1925
default: ''
@@ -23,15 +29,21 @@ parameters:
2329
- name: forceDryRun
2430
type: boolean
2531
default: false
32+
- name: versionsRepoRef
33+
type: string
34+
default: ""
2635

2736
jobs:
2837
- job: ${{ parameters.name }}
2938
pool: ${{ parameters.pool }}
3039
steps:
31-
- template: /eng/docker-tools/templates/steps/init-docker-linux.yml@self
40+
- template: /eng/docker-tools/templates/steps/init-common.yml@self
3241
parameters:
42+
dockerClientOS: linux
3343
publishConfig: ${{ parameters.publishConfig }}
34-
- ${{ parameters.customInitSteps }}
44+
customInitSteps: ${{ parameters.customInitSteps }}
45+
versionsRepoRef: ${{ parameters.versionsRepoRef }}
46+
- ${{ parameters.customCopyBaseImagesInitSteps }}
3547
- template: /eng/docker-tools/templates/steps/copy-base-images.yml@self
3648
parameters:
3749
acr: ${{ parameters.acr }}

eng/docker-tools/templates/jobs/generate-matrix.yml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,26 @@ parameters:
77
internalProjectName: null
88
noCache: false
99
publishConfig: null
10+
# Custom steps to set up ImageBuilder instead of pulling from MCR (e.g., bootstrap from source).
11+
# Runs before ImageBuilder pull. If non-empty, skips the default ImageBuilder pull.
1012
customInitSteps: []
11-
commonInitStepsForMatrixAndBuild: []
13+
# Custom steps that run after ImageBuilder is set up but before matrix generation runs.
14+
customGenerateMatrixInitSteps: []
15+
versionsRepoRef: ""
1216
sourceBuildPipelineRunId: ""
1317

1418
jobs:
1519
- job: ${{ parameters.name }}
1620
pool: ${{ parameters.pool }}
1721
steps:
18-
- ${{ parameters.commonInitStepsForMatrixAndBuild }}
22+
- template: /eng/docker-tools/templates/steps/init-common.yml@self
23+
parameters:
24+
dockerClientOS: linux
25+
publishConfig: ${{ parameters.publishConfig }}
26+
versionsRepoRef: ${{ parameters.versionsRepoRef }}
27+
customInitSteps: ${{ parameters.customInitSteps }}
28+
- ${{ parameters.customGenerateMatrixInitSteps }}
1929
- template: /eng/docker-tools/templates/steps/retain-build.yml@self
20-
- template: /eng/docker-tools/templates/steps/init-docker-linux.yml@self
21-
- ${{ parameters.customInitSteps }}
2230
- template: /eng/docker-tools/templates/steps/validate-branch.yml@self
2331
parameters:
2432
publishConfig: ${{ parameters.publishConfig }}

eng/docker-tools/templates/jobs/post-build.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ parameters:
22
pool: {}
33
internalProjectName: null
44
publicProjectName: null
5+
customInitSteps: []
56

67
jobs:
78
- job: Build
@@ -13,7 +14,10 @@ jobs:
1314
imageInfosOutputSubDir: "/output"
1415
sbomOutputDir: "$(Build.ArtifactStagingDirectory)/sbom"
1516
steps:
16-
- template: /eng/docker-tools/templates/steps/init-docker-linux.yml@self
17+
- template: /eng/docker-tools/templates/steps/init-common.yml@self
18+
parameters:
19+
dockerClientOS: linux
20+
customInitSteps: ${{ parameters.customInitSteps }}
1721
- template: /eng/docker-tools/templates/steps/download-build-artifact.yml@self
1822
parameters:
1923
targetPath: $(Build.ArtifactStagingDirectory)

eng/docker-tools/templates/jobs/publish.yml

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ parameters:
33
internalProjectName: null
44
publishConfig: null
55
customInitSteps: []
6+
customPostInitSteps: []
67
customPublishVariables: []
78
sourceBuildPipelineDefinitionId: ""
89
sourceBuildPipelineRunId: ""
@@ -45,25 +46,21 @@ jobs:
4546
- ${{ parameters.customPublishVariables }}
4647

4748
steps:
48-
- template: /eng/docker-tools/templates/steps/init-matrix-build-publish.yml@self
49+
- template: /eng/docker-tools/templates/steps/init-common.yml@self
4950
parameters:
51+
dockerClientOS: linux
5052
publishConfig: ${{ parameters.publishConfig }}
5153
versionsRepoRef: ${{ parameters.versionsRepoRef }}
54+
customInitSteps: ${{ parameters.customInitSteps }}
5255

5356
- template: /eng/docker-tools/templates/steps/retain-build.yml@self
5457

55-
- template: /eng/docker-tools/templates/steps/init-docker-linux.yml@self
56-
parameters:
57-
publishConfig: ${{ parameters.publishConfig }}
58-
5958
- pwsh: |
6059
$azdoOrgName = Split-Path -Leaf $Env:SYSTEM_COLLECTIONURI
6160
echo "##vso[task.setvariable variable=azdoOrgName]$azdoOrgName"
62-
$versionsRepoRoot = "$(Pipeline.Workspace)/s/${{ parameters.versionsRepoPath }}"
63-
echo "##vso[task.setvariable variable=versionsRepoRoot]$versionsRepoRoot"
6461
displayName: Set Publish Variables
6562
66-
- ${{ parameters.customInitSteps }}
63+
- ${{ parameters.customPostInitSteps }}
6764

6865
- template: /eng/docker-tools/templates/steps/validate-branch.yml@self
6966
parameters:

eng/docker-tools/templates/stages/build-and-test.yml

Lines changed: 36 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ parameters:
55
testMatrixCustomBuildLegGroupArgs: ""
66
customCopyBaseImagesInitSteps: []
77
customGenerateMatrixInitSteps: []
8+
# Custom steps to set up ImageBuilder instead of pulling from MCR (e.g., bootstrap from source).
9+
# Runs before ImageBuilder pull. If non-empty, skips the default ImageBuilder pull.
10+
customInitSteps: []
11+
# Custom steps that run after ImageBuilder is set up but before the build starts.
12+
# Use for build-specific initialization (e.g., setting variables, additional setup).
813
customBuildInitSteps: []
914
customTestInitSteps: []
1015
sourceBuildPipelineRunId: ""
@@ -16,7 +21,6 @@ parameters:
1621
linuxAmdTestJobTimeout: 60
1722
linuxArmTestJobTimeout: 60
1823
windowsAmdTestJobTimeout: 60
19-
2024
noCache: false
2125
publishConfig: null
2226

@@ -78,7 +82,9 @@ stages:
7882
publishConfig: ${{ parameters.publishConfig }}
7983
pool: ${{ parameters.linuxAmd64Pool }}
8084
additionalOptions: "--manifest '$(manifest)' $(imageBuilder.pathArgs) $(manifestVariables)"
81-
customInitSteps: ${{ parameters.customCopyBaseImagesInitSteps }}
85+
customInitSteps: ${{ parameters.customInitSteps }}
86+
customCopyBaseImagesInitSteps: ${{ parameters.customCopyBaseImagesInitSteps }}
87+
versionsRepoRef: ${{ parameters.versionsRepoRef }}
8288

8389
- template: /eng/docker-tools/templates/jobs/generate-matrix.yml@self
8490
parameters:
@@ -89,12 +95,9 @@ stages:
8995
internalProjectName: ${{ parameters.internalProjectName }}
9096
noCache: ${{ parameters.noCache }}
9197
publishConfig: ${{ parameters.publishConfig }}
92-
customInitSteps: ${{ parameters.customGenerateMatrixInitSteps }}
93-
commonInitStepsForMatrixAndBuild:
94-
- template: /eng/docker-tools/templates/steps/init-matrix-build-publish.yml@self
95-
parameters:
96-
publishConfig: ${{ parameters.publishConfig }}
97-
versionsRepoRef: ${{ parameters.versionsRepoRef }}
98+
customInitSteps: ${{ parameters.customInitSteps }}
99+
customGenerateMatrixInitSteps: ${{ parameters.customGenerateMatrixInitSteps }}
100+
versionsRepoRef: ${{ parameters.versionsRepoRef }}
98101

99102
- template: /eng/docker-tools/templates/jobs/build-images.yml@self
100103
parameters:
@@ -103,12 +106,9 @@ stages:
103106
matrix: dependencies.GenerateBuildMatrix.outputs['matrix.LinuxAmd64']
104107
dockerClientOS: linux
105108
buildJobTimeout: ${{ parameters.linuxAmdBuildJobTimeout }}
106-
commonInitStepsForMatrixAndBuild:
107-
- template: /eng/docker-tools/templates/steps/init-matrix-build-publish.yml@self
108-
parameters:
109-
publishConfig: ${{ parameters.publishConfig }}
110-
versionsRepoRef: ${{ parameters.versionsRepoRef }}
111-
customInitSteps: ${{ parameters.customBuildInitSteps }}
109+
versionsRepoRef: ${{ parameters.versionsRepoRef }}
110+
customInitSteps: ${{ parameters.customInitSteps }}
111+
customBuildInitSteps: ${{ parameters.customBuildInitSteps }}
112112
noCache: ${{ parameters.noCache }}
113113
publishConfig: ${{ parameters.publishConfig }}
114114
internalProjectName: ${{ parameters.internalProjectName }}
@@ -121,12 +121,9 @@ stages:
121121
matrix: dependencies.GenerateBuildMatrix.outputs['matrix.LinuxArm64']
122122
dockerClientOS: linux
123123
buildJobTimeout: ${{ parameters.linuxArmBuildJobTimeout }}
124-
commonInitStepsForMatrixAndBuild:
125-
- template: /eng/docker-tools/templates/steps/init-matrix-build-publish.yml@self
126-
parameters:
127-
publishConfig: ${{ parameters.publishConfig }}
128-
versionsRepoRef: ${{ parameters.versionsRepoRef }}
129-
customInitSteps: ${{ parameters.customBuildInitSteps }}
124+
versionsRepoRef: ${{ parameters.versionsRepoRef }}
125+
customInitSteps: ${{ parameters.customInitSteps }}
126+
customBuildInitSteps: ${{ parameters.customBuildInitSteps }}
130127
noCache: ${{ parameters.noCache }}
131128
publishConfig: ${{ parameters.publishConfig }}
132129
internalProjectName: ${{ parameters.internalProjectName }}
@@ -139,12 +136,9 @@ stages:
139136
matrix: dependencies.GenerateBuildMatrix.outputs['matrix.LinuxArm32']
140137
dockerClientOS: linux
141138
buildJobTimeout: ${{ parameters.linuxArmBuildJobTimeout }}
142-
commonInitStepsForMatrixAndBuild:
143-
- template: /eng/docker-tools/templates/steps/init-matrix-build-publish.yml@self
144-
parameters:
145-
publishConfig: ${{ parameters.publishConfig }}
146-
versionsRepoRef: ${{ parameters.versionsRepoRef }}
147-
customInitSteps: ${{ parameters.customBuildInitSteps }}
139+
versionsRepoRef: ${{ parameters.versionsRepoRef }}
140+
customInitSteps: ${{ parameters.customInitSteps }}
141+
customBuildInitSteps: ${{ parameters.customBuildInitSteps }}
148142
noCache: ${{ parameters.noCache }}
149143
publishConfig: ${{ parameters.publishConfig }}
150144
internalProjectName: ${{ parameters.internalProjectName }}
@@ -157,12 +151,9 @@ stages:
157151
matrix: dependencies.GenerateBuildMatrix.outputs['matrix.Windows1809Amd64']
158152
dockerClientOS: windows
159153
buildJobTimeout: ${{ parameters.windowsAmdBuildJobTimeout }}
160-
commonInitStepsForMatrixAndBuild:
161-
- template: /eng/docker-tools/templates/steps/init-matrix-build-publish.yml@self
162-
parameters:
163-
publishConfig: ${{ parameters.publishConfig }}
164-
versionsRepoRef: ${{ parameters.versionsRepoRef }}
165-
customInitSteps: ${{ parameters.customBuildInitSteps }}
154+
versionsRepoRef: ${{ parameters.versionsRepoRef }}
155+
customInitSteps: ${{ parameters.customInitSteps }}
156+
customBuildInitSteps: ${{ parameters.customBuildInitSteps }}
166157
noCache: ${{ parameters.noCache }}
167158
publishConfig: ${{ parameters.publishConfig }}
168159
internalProjectName: ${{ parameters.internalProjectName }}
@@ -175,12 +166,9 @@ stages:
175166
matrix: dependencies.GenerateBuildMatrix.outputs['matrix.WindowsLtsc2022Amd64']
176167
dockerClientOS: windows
177168
buildJobTimeout: ${{ parameters.windowsAmdBuildJobTimeout }}
178-
commonInitStepsForMatrixAndBuild:
179-
- template: /eng/docker-tools/templates/steps/init-matrix-build-publish.yml@self
180-
parameters:
181-
publishConfig: ${{ parameters.publishConfig }}
182-
versionsRepoRef: ${{ parameters.versionsRepoRef }}
183-
customInitSteps: ${{ parameters.customBuildInitSteps }}
169+
versionsRepoRef: ${{ parameters.versionsRepoRef }}
170+
customInitSteps: ${{ parameters.customInitSteps }}
171+
customBuildInitSteps: ${{ parameters.customBuildInitSteps }}
184172
noCache: ${{ parameters.noCache }}
185173
publishConfig: ${{ parameters.publishConfig }}
186174
internalProjectName: ${{ parameters.internalProjectName }}
@@ -193,17 +181,13 @@ stages:
193181
matrix: dependencies.GenerateBuildMatrix.outputs['matrix.WindowsLtsc2025Amd64']
194182
dockerClientOS: windows
195183
buildJobTimeout: ${{ parameters.windowsAmdBuildJobTimeout }}
196-
commonInitStepsForMatrixAndBuild:
197-
- template: /eng/docker-tools/templates/steps/init-matrix-build-publish.yml@self
198-
parameters:
199-
publishConfig: ${{ parameters.publishConfig }}
200-
versionsRepoRef: ${{ parameters.versionsRepoRef }}
201-
customInitSteps: ${{ parameters.customBuildInitSteps }}
184+
versionsRepoRef: ${{ parameters.versionsRepoRef }}
185+
customInitSteps: ${{ parameters.customInitSteps }}
186+
customBuildInitSteps: ${{ parameters.customBuildInitSteps }}
202187
noCache: ${{ parameters.noCache }}
203188
publishConfig: ${{ parameters.publishConfig }}
204189
internalProjectName: ${{ parameters.internalProjectName }}
205190
publicProjectName: ${{ parameters.publicProjectName }}
206-
versionsRepoRef: ${{ parameters.versionsRepoRef }}
207191
storageAccountServiceConnection: ${{ parameters.storageAccountServiceConnection }}
208192
- template: /eng/docker-tools/templates/jobs/build-images.yml@self
209193
parameters:
@@ -212,12 +196,9 @@ stages:
212196
matrix: dependencies.GenerateBuildMatrix.outputs['matrix.WindowsLtsc2016Amd64']
213197
dockerClientOS: windows
214198
buildJobTimeout: ${{ parameters.windowsAmdBuildJobTimeout }}
215-
commonInitStepsForMatrixAndBuild:
216-
- template: /eng/docker-tools/templates/steps/init-matrix-build-publish.yml@self
217-
parameters:
218-
publishConfig: ${{ parameters.publishConfig }}
219-
versionsRepoRef: ${{ parameters.versionsRepoRef }}
220-
customInitSteps: ${{ parameters.customBuildInitSteps }}
199+
versionsRepoRef: ${{ parameters.versionsRepoRef }}
200+
customInitSteps: ${{ parameters.customInitSteps }}
201+
customBuildInitSteps: ${{ parameters.customBuildInitSteps }}
221202
noCache: ${{ parameters.noCache }}
222203
publishConfig: ${{ parameters.publishConfig }}
223204
internalProjectName: ${{ parameters.internalProjectName }}
@@ -236,6 +217,7 @@ stages:
236217
pool: ${{ parameters.linuxAmd64Pool }}
237218
internalProjectName: ${{ parameters.internalProjectName }}
238219
publicProjectName: ${{ parameters.publicProjectName }}
220+
customInitSteps: ${{ parameters.customInitSteps }}
239221

240222
################################################################################
241223
# Test Images
@@ -264,13 +246,10 @@ stages:
264246
isTestStage: true
265247
internalProjectName: ${{ parameters.internalProjectName }}
266248
publicProjectName: ${{ parameters.publicProjectName }}
267-
customInitSteps: ${{ parameters.customGenerateMatrixInitSteps }}
249+
customInitSteps: ${{ parameters.customInitSteps }}
250+
customGenerateMatrixInitSteps: ${{ parameters.customGenerateMatrixInitSteps }}
268251
sourceBuildPipelineRunId: ${{ parameters.sourceBuildPipelineRunId }}
269-
commonInitStepsForMatrixAndBuild:
270-
- template: /eng/docker-tools/templates/steps/init-matrix-build-publish.yml@self
271-
parameters:
272-
versionsRepoRef: ${{ parameters.versionsRepoRef }}
273-
publishConfig: ${{ parameters.publishConfig }}
252+
versionsRepoRef: ${{ parameters.versionsRepoRef }}
274253
- template: /eng/docker-tools/templates/jobs/test-images-linux-client.yml@self
275254
parameters:
276255
name: Linux_amd64

0 commit comments

Comments
 (0)