Skip to content

Commit 37f076a

Browse files
lbussellCopilot
andauthored
Restore separate custom init step parameters (fix regression from #1963) (#1974)
#1963 ("Update Image Builder tag reference") inadvertently reverted the fix from #1954 ("Separate custom init steps from job-specific init steps") due to a bad merge. This re-introduced the bug where Windows PR validation fails because `Microsoft.DotNet.ImageBuilder.exe` is never downloaded. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 0bf999c commit 37f076a

5 files changed

Lines changed: 52 additions & 31 deletions

File tree

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ parameters:
44
matrix: {}
55
dockerClientOS: null
66
buildJobTimeout: 60
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.
79
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: []
813
publishConfig: null
914
versionsRepoRef: ""
1015
noCache: false
@@ -36,6 +41,7 @@ jobs:
3641
versionsRepoRef: ${{ parameters.versionsRepoRef }}
3742
cleanupDocker: true
3843
customInitSteps: ${{ parameters.customInitSteps }}
44+
- ${{ parameters.customBuildInitSteps }}
3945
- template: /eng/docker-tools/templates/steps/set-image-info-path-var.yml@self
4046
parameters:
4147
publicSourceBranch: $(publicSourceBranch)

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,15 @@ 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: ''
@@ -28,6 +34,7 @@ jobs:
2834
pool: ${{ parameters.pool }}
2935
publishConfig: ${{ parameters.publishConfig }}
3036
customInitSteps: ${{ parameters.customInitSteps }}
37+
customCopyBaseImagesInitSteps: ${{ parameters.customCopyBaseImagesInitSteps }}
3138
additionalOptions: ${{ parameters.additionalOptions }}
3239
acr: ${{ parameters.publishConfig.InternalMirrorRegistry }}
3340
versionsRepoRef: ${{ parameters.versionsRepoRef }}

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

Lines changed: 7 additions & 0 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: ''
@@ -37,6 +43,7 @@ jobs:
3743
publishConfig: ${{ parameters.publishConfig }}
3844
customInitSteps: ${{ parameters.customInitSteps }}
3945
versionsRepoRef: ${{ parameters.versionsRepoRef }}
46+
- ${{ parameters.customCopyBaseImagesInitSteps }}
4047
- template: /eng/docker-tools/templates/steps/copy-base-images.yml@self
4148
parameters:
4249
acr: ${{ parameters.acr }}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@ 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: []
13+
# Custom steps that run after ImageBuilder is set up but before matrix generation runs.
14+
customGenerateMatrixInitSteps: []
1115
versionsRepoRef: ""
1216
sourceBuildPipelineRunId: ""
1317

@@ -21,6 +25,7 @@ jobs:
2125
publishConfig: ${{ parameters.publishConfig }}
2226
versionsRepoRef: ${{ parameters.versionsRepoRef }}
2327
customInitSteps: ${{ parameters.customInitSteps }}
28+
- ${{ parameters.customGenerateMatrixInitSteps }}
2429
- template: /eng/docker-tools/templates/steps/retain-build.yml@self
2530
- template: /eng/docker-tools/templates/steps/validate-branch.yml@self
2631
parameters:

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

Lines changed: 27 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,17 @@ parameters:
33
testMatrixType: platformVersionedOs
44
buildMatrixCustomBuildLegGroupArgs: ""
55
testMatrixCustomBuildLegGroupArgs: ""
6+
# Custom steps to set up ImageBuilder instead of pulling from MCR (e.g., bootstrap from source).
7+
# Runs before ImageBuilder pull. If non-empty, skips the default ImageBuilder pull.
8+
customInitSteps: []
9+
# Custom steps that run after ImageBuilder is set up but before copy-base-images runs.
610
customCopyBaseImagesInitSteps: []
11+
# Custom steps that run after ImageBuilder is set up but before matrix generation runs.
712
customGenerateMatrixInitSteps: []
13+
# Custom steps that run after ImageBuilder is set up but before the build starts.
14+
# Use for build-specific initialization (e.g., setting variables, additional setup).
815
customBuildInitSteps: []
916
customTestInitSteps: []
10-
customInitSteps: []
1117
sourceBuildPipelineRunId: ""
1218

1319
linuxAmdBuildJobTimeout: 60
@@ -78,9 +84,8 @@ stages:
7884
publishConfig: ${{ parameters.publishConfig }}
7985
pool: ${{ parameters.linuxAmd64Pool }}
8086
additionalOptions: "--manifest '$(manifest)' $(imageBuilder.pathArgs) $(manifestVariables)"
81-
customInitSteps:
82-
- ${{ parameters.customInitSteps }}
83-
- ${{ parameters.customCopyBaseImagesInitSteps }}
87+
customInitSteps: ${{ parameters.customInitSteps }}
88+
customCopyBaseImagesInitSteps: ${{ parameters.customCopyBaseImagesInitSteps }}
8489
versionsRepoRef: ${{ parameters.versionsRepoRef }}
8590

8691
- template: /eng/docker-tools/templates/jobs/generate-matrix.yml@self
@@ -92,9 +97,8 @@ stages:
9297
internalProjectName: ${{ parameters.internalProjectName }}
9398
noCache: ${{ parameters.noCache }}
9499
publishConfig: ${{ parameters.publishConfig }}
95-
customInitSteps:
96-
- ${{ parameters.customInitSteps }}
97-
- ${{ parameters.customGenerateMatrixInitSteps }}
100+
customInitSteps: ${{ parameters.customInitSteps }}
101+
customGenerateMatrixInitSteps: ${{ parameters.customGenerateMatrixInitSteps }}
98102
versionsRepoRef: ${{ parameters.versionsRepoRef }}
99103

100104
- template: /eng/docker-tools/templates/jobs/build-images.yml@self
@@ -105,9 +109,8 @@ stages:
105109
dockerClientOS: linux
106110
buildJobTimeout: ${{ parameters.linuxAmdBuildJobTimeout }}
107111
versionsRepoRef: ${{ parameters.versionsRepoRef }}
108-
customInitSteps:
109-
- ${{ parameters.customInitSteps }}
110-
- ${{ parameters.customBuildInitSteps }}
112+
customInitSteps: ${{ parameters.customInitSteps }}
113+
customBuildInitSteps: ${{ parameters.customBuildInitSteps }}
111114
noCache: ${{ parameters.noCache }}
112115
publishConfig: ${{ parameters.publishConfig }}
113116
internalProjectName: ${{ parameters.internalProjectName }}
@@ -121,9 +124,8 @@ stages:
121124
dockerClientOS: linux
122125
buildJobTimeout: ${{ parameters.linuxArmBuildJobTimeout }}
123126
versionsRepoRef: ${{ parameters.versionsRepoRef }}
124-
customInitSteps:
125-
- ${{ parameters.customInitSteps }}
126-
- ${{ parameters.customBuildInitSteps }}
127+
customInitSteps: ${{ parameters.customInitSteps }}
128+
customBuildInitSteps: ${{ parameters.customBuildInitSteps }}
127129
noCache: ${{ parameters.noCache }}
128130
publishConfig: ${{ parameters.publishConfig }}
129131
internalProjectName: ${{ parameters.internalProjectName }}
@@ -137,9 +139,8 @@ stages:
137139
dockerClientOS: linux
138140
buildJobTimeout: ${{ parameters.linuxArmBuildJobTimeout }}
139141
versionsRepoRef: ${{ parameters.versionsRepoRef }}
140-
customInitSteps:
141-
- ${{ parameters.customInitSteps }}
142-
- ${{ parameters.customBuildInitSteps }}
142+
customInitSteps: ${{ parameters.customInitSteps }}
143+
customBuildInitSteps: ${{ parameters.customBuildInitSteps }}
143144
noCache: ${{ parameters.noCache }}
144145
publishConfig: ${{ parameters.publishConfig }}
145146
internalProjectName: ${{ parameters.internalProjectName }}
@@ -153,9 +154,8 @@ stages:
153154
dockerClientOS: windows
154155
buildJobTimeout: ${{ parameters.windowsAmdBuildJobTimeout }}
155156
versionsRepoRef: ${{ parameters.versionsRepoRef }}
156-
customInitSteps:
157-
- ${{ parameters.customInitSteps }}
158-
- ${{ parameters.customBuildInitSteps }}
157+
customInitSteps: ${{ parameters.customInitSteps }}
158+
customBuildInitSteps: ${{ parameters.customBuildInitSteps }}
159159
noCache: ${{ parameters.noCache }}
160160
publishConfig: ${{ parameters.publishConfig }}
161161
internalProjectName: ${{ parameters.internalProjectName }}
@@ -169,9 +169,8 @@ stages:
169169
dockerClientOS: windows
170170
buildJobTimeout: ${{ parameters.windowsAmdBuildJobTimeout }}
171171
versionsRepoRef: ${{ parameters.versionsRepoRef }}
172-
customInitSteps:
173-
- ${{ parameters.customInitSteps }}
174-
- ${{ parameters.customBuildInitSteps }}
172+
customInitSteps: ${{ parameters.customInitSteps }}
173+
customBuildInitSteps: ${{ parameters.customBuildInitSteps }}
175174
noCache: ${{ parameters.noCache }}
176175
publishConfig: ${{ parameters.publishConfig }}
177176
internalProjectName: ${{ parameters.internalProjectName }}
@@ -185,9 +184,8 @@ stages:
185184
dockerClientOS: windows
186185
buildJobTimeout: ${{ parameters.windowsAmdBuildJobTimeout }}
187186
versionsRepoRef: ${{ parameters.versionsRepoRef }}
188-
customInitSteps:
189-
- ${{ parameters.customInitSteps }}
190-
- ${{ parameters.customBuildInitSteps }}
187+
customInitSteps: ${{ parameters.customInitSteps }}
188+
customBuildInitSteps: ${{ parameters.customBuildInitSteps }}
191189
noCache: ${{ parameters.noCache }}
192190
publishConfig: ${{ parameters.publishConfig }}
193191
internalProjectName: ${{ parameters.internalProjectName }}
@@ -201,9 +199,8 @@ stages:
201199
dockerClientOS: windows
202200
buildJobTimeout: ${{ parameters.windowsAmdBuildJobTimeout }}
203201
versionsRepoRef: ${{ parameters.versionsRepoRef }}
204-
customInitSteps:
205-
- ${{ parameters.customInitSteps }}
206-
- ${{ parameters.customBuildInitSteps }}
202+
customInitSteps: ${{ parameters.customInitSteps }}
203+
customBuildInitSteps: ${{ parameters.customBuildInitSteps }}
207204
noCache: ${{ parameters.noCache }}
208205
publishConfig: ${{ parameters.publishConfig }}
209206
internalProjectName: ${{ parameters.internalProjectName }}
@@ -251,9 +248,8 @@ stages:
251248
isTestStage: true
252249
internalProjectName: ${{ parameters.internalProjectName }}
253250
publicProjectName: ${{ parameters.publicProjectName }}
254-
customInitSteps:
255-
- ${{ parameters.customInitSteps }}
256-
- ${{ parameters.customGenerateMatrixInitSteps }}
251+
customInitSteps: ${{ parameters.customInitSteps }}
252+
customGenerateMatrixInitSteps: ${{ parameters.customGenerateMatrixInitSteps }}
257253
sourceBuildPipelineRunId: ${{ parameters.sourceBuildPipelineRunId }}
258254
versionsRepoRef: ${{ parameters.versionsRepoRef }}
259255
- template: /eng/docker-tools/templates/jobs/test-images-linux-client.yml@self

0 commit comments

Comments
 (0)