@@ -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