Skip to content

Commit 1cf97a9

Browse files
Update common Docker engineering infrastructure with latest
1 parent 71319b9 commit 1cf97a9

14 files changed

+128
-94
lines changed

eng/common/templates/1es.yml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ parameters:
3232
name: $(defaultSourceAnalysisPoolName)
3333
image: $(defaultSourceAnalysisPoolImage)
3434
os: windows
35+
# Container image SBOMs are generated manually during the build job. 1ESPT's
36+
# automatic SBOM generation only adds unnecessary steps and artifacts to
37+
# builds. SBOM is not needed for JSON outputs. If a pipeline outputs binary
38+
# artifacts that ship to customers, then set this parameter to true.
39+
- name: enableSbom
40+
type: boolean
41+
default: false
3542

3643
resources:
3744
repositories:
@@ -47,10 +54,8 @@ extends:
4754
templateParameters:
4855
pool: ${{ parameters.pool }}
4956
sdl:
50-
# Required for unofficial pipelines because we rely on the ManifestGeneratorTask that is
51-
# automatically installed by 1ES pipeline templates
5257
sbom:
53-
enabled: true
58+
enabled: ${{ parameters.enableSbom }}
5459
binskim:
5560
enabled: true
5661
componentgovernance:

eng/common/templates/jobs/build-images.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ parameters:
1010
noCache: false
1111
internalProjectName: null
1212
publicProjectName: null
13-
isInternalServicingValidation: false
13+
storageAccountServiceConnection: null
1414

1515
jobs:
1616
- job: ${{ parameters.name }}
@@ -73,11 +73,11 @@ jobs:
7373
id: ${{ parameters.publishConfig.buildAcr.serviceConnection.id }}
7474
tenantId: ${{ parameters.publishConfig.buildAcr.serviceConnection.tenantId }}
7575
clientId: ${{ parameters.publishConfig.buildAcr.serviceConnection.clientId }}
76-
- ${{ if eq(parameters.isInternalServicingValidation, true) }}:
76+
- ${{ if parameters.storageAccountServiceConnection }}:
7777
- name: storage
78-
id: $(dotnetstaging.serviceConnection.id)
79-
tenantId: $(dotnetstaging.serviceConnection.tenantId)
80-
clientId: $(dotnetstaging.serviceConnection.clientId)
78+
id: ${{ parameters.storageAccountServiceConnection.id }}
79+
tenantId: ${{ parameters.storageAccountServiceConnection.tenantId }}
80+
clientId: ${{ parameters.storageAccountServiceConnection.clientId }}
8181
internalProjectName: ${{ parameters.internalProjectName }}
8282
dockerClientOS: ${{ parameters.dockerClientOS }}
8383
args: >-

eng/common/templates/jobs/publish.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ jobs:
236236

237237
- template: /eng/common/templates/steps/annotate-eol-digests.yml@self
238238
parameters:
239-
publishConfig: ${{ parameters.publishConfig }}
239+
acr: ${{ parameters.publishConfig.publishAcr }}
240240
dataFile: $(artifactsPath)/eol-annotation-data/eol-annotation-data.json
241241

242242
- script: >
@@ -284,8 +284,8 @@ jobs:
284284
--task "🟪 Publish Image Info"
285285
--task "🟪 Ingest Kusto Image Info"
286286
--task "🟪 Generate EOL Annotation Data"
287-
--task "🟪 Annotate EOL Images"
288-
--task "🟪 Wait for Annotation Ingestion"
287+
--task "🟪 Annotate EOL Images (${{ parameters.publishConfig.publishAcr.server }})"
288+
--task "🟪 Wait for Annotation Ingestion (${{ parameters.publishConfig.publishAcr.server }})"
289289
$(dryRunArg)
290290
$(imageBuilder.commonCmdArgs)
291291
displayName: Post Publish Notification

eng/common/templates/stages/build-and-test.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ parameters:
2525

2626
versionsRepoRef: ""
2727

28-
isInternalServicingValidation: false
28+
storageAccountServiceConnection: null
2929

3030
linuxAmd64Pool:
3131
vmImage: $(defaultLinuxAmd64PoolImage)
@@ -113,7 +113,7 @@ stages:
113113
publishConfig: ${{ parameters.publishConfig }}
114114
internalProjectName: ${{ parameters.internalProjectName }}
115115
publicProjectName: ${{ parameters.publicProjectName }}
116-
isInternalServicingValidation: ${{ parameters.isInternalServicingValidation }}
116+
storageAccountServiceConnection: ${{ parameters.storageAccountServiceConnection }}
117117
- template: /eng/common/templates/jobs/build-images.yml@self
118118
parameters:
119119
name: Linux_arm64
@@ -131,7 +131,7 @@ stages:
131131
publishConfig: ${{ parameters.publishConfig }}
132132
internalProjectName: ${{ parameters.internalProjectName }}
133133
publicProjectName: ${{ parameters.publicProjectName }}
134-
isInternalServicingValidation: ${{ parameters.isInternalServicingValidation }}
134+
storageAccountServiceConnection: ${{ parameters.storageAccountServiceConnection }}
135135
- template: /eng/common/templates/jobs/build-images.yml@self
136136
parameters:
137137
name: Linux_arm32
@@ -149,7 +149,7 @@ stages:
149149
publishConfig: ${{ parameters.publishConfig }}
150150
internalProjectName: ${{ parameters.internalProjectName }}
151151
publicProjectName: ${{ parameters.publicProjectName }}
152-
isInternalServicingValidation: ${{ parameters.isInternalServicingValidation }}
152+
storageAccountServiceConnection: ${{ parameters.storageAccountServiceConnection }}
153153
- template: /eng/common/templates/jobs/build-images.yml@self
154154
parameters:
155155
name: Windows1809_amd64
@@ -167,7 +167,7 @@ stages:
167167
publishConfig: ${{ parameters.publishConfig }}
168168
internalProjectName: ${{ parameters.internalProjectName }}
169169
publicProjectName: ${{ parameters.publicProjectName }}
170-
isInternalServicingValidation: ${{ parameters.isInternalServicingValidation }}
170+
storageAccountServiceConnection: ${{ parameters.storageAccountServiceConnection }}
171171
- template: /eng/common/templates/jobs/build-images.yml@self
172172
parameters:
173173
name: Windows2022_amd64
@@ -185,7 +185,7 @@ stages:
185185
publishConfig: ${{ parameters.publishConfig }}
186186
internalProjectName: ${{ parameters.internalProjectName }}
187187
publicProjectName: ${{ parameters.publicProjectName }}
188-
isInternalServicingValidation: ${{ parameters.isInternalServicingValidation }}
188+
storageAccountServiceConnection: ${{ parameters.storageAccountServiceConnection }}
189189
- template: /eng/common/templates/jobs/build-images.yml@self
190190
parameters:
191191
name: Windows2025_amd64
@@ -204,7 +204,7 @@ stages:
204204
internalProjectName: ${{ parameters.internalProjectName }}
205205
publicProjectName: ${{ parameters.publicProjectName }}
206206
versionsRepoRef: ${{ parameters.versionsRepoRef }}
207-
isInternalServicingValidation: ${{ parameters.isInternalServicingValidation }}
207+
storageAccountServiceConnection: ${{ parameters.storageAccountServiceConnection }}
208208
- template: /eng/common/templates/jobs/build-images.yml@self
209209
parameters:
210210
name: WindowsLtsc2016_amd64
@@ -222,7 +222,7 @@ stages:
222222
publishConfig: ${{ parameters.publishConfig }}
223223
internalProjectName: ${{ parameters.internalProjectName }}
224224
publicProjectName: ${{ parameters.publicProjectName }}
225-
isInternalServicingValidation: ${{ parameters.isInternalServicingValidation }}
225+
storageAccountServiceConnection: ${{ parameters.storageAccountServiceConnection }}
226226

227227
################################################################################
228228
# Post-Build

eng/common/templates/stages/dotnet/build-and-test.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,13 @@
33

44
parameters:
55
linuxAmd64Pool: ""
6-
isInternalServicingValidation: false
6+
7+
# (Optional) This service connection should be an Azure Resource Manager
8+
# service connection to a storage account that's needed during image builds.
9+
# It can be used to build images with access to private/internal bits.
10+
# If specified, this service connection will be used to pass a storage
11+
# account access token as `--build-arg ACCESSTOKEN=***` to all image builds.
12+
storageAccountServiceConnection: null
713

814
# Parameters for pre-build jobs
915
customGenerateMatrixInitSteps: []
@@ -40,7 +46,7 @@ stages:
4046
publishConfig: ${{ parameters.publishConfig }}
4147
internalProjectName: ${{ parameters.internalProjectName }}
4248
publicProjectName: ${{ parameters.publicProjectName }}
43-
isInternalServicingValidation: ${{ parameters.isInternalServicingValidation }}
49+
storageAccountServiceConnection: ${{ parameters.storageAccountServiceConnection }}
4450
customGenerateMatrixInitSteps: ${{ parameters.customGenerateMatrixInitSteps }}
4551
buildMatrixCustomBuildLegGroupArgs: ${{ parameters.buildMatrixCustomBuildLegGroupArgs }}
4652
testMatrixCustomBuildLegGroupArgs: ${{ parameters.testMatrixCustomBuildLegGroupArgs }}

eng/common/templates/stages/dotnet/build-test-publish-repo.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
parameters:
44
linuxAmd64Pool: ""
5-
isInternalServicingValidation: false
65

76
# Parameters for pre-build jobs
87
customGenerateMatrixInitSteps: []
@@ -39,7 +38,6 @@ stages:
3938
- template: /eng/common/templates/stages/dotnet/build-and-test.yml@self
4039
parameters:
4140
linuxAmd64Pool: ${{ parameters.linuxAmd64Pool }}
42-
isInternalServicingValidation: ${{ parameters.isInternalServicingValidation }}
4341
# Pre-build
4442
customGenerateMatrixInitSteps: ${{ parameters.customGenerateMatrixInitSteps }}
4543
customCopyBaseImagesInitSteps: ${{ parameters.customCopyBaseImagesInitSteps }}
@@ -68,7 +66,6 @@ stages:
6866
- template: /eng/common/templates/stages/dotnet/publish.yml@self
6967
parameters:
7068
pool: ${{ parameters.linuxAmd64Pool }}
71-
isInternalServicingValidation: ${{ parameters.isInternalServicingValidation }}
7269
customPublishInitSteps: ${{ parameters.customPublishInitSteps }}
7370
internalProjectName: ${{ parameters.internalProjectName }}
7471
publicProjectName: ${{ parameters.publicProjectName }}

eng/common/templates/stages/dotnet/publish-config-nonprod.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,13 @@ stages:
6161

6262
publicMirrorAcr:
6363
server: $(public-mirror.server)
64+
resourceGroup: $(public-mirror.resourceGroup)
65+
subscription: $(public-mirror.subscription)
66+
serviceConnection:
67+
name: $(public-mirror.serviceConnectionName)
68+
id: $(public-mirror.serviceConnection.id)
69+
tenantId: $(public-mirror.serviceConnection.tenantId)
70+
clientId: $(public-mirror.serviceConnection.clientId)
6471

6572
buildAcr:
6673
server: $(acr-staging-test.server)
@@ -73,6 +80,12 @@ stages:
7380
clientId: $(build-test.serviceConnection.clientId)
7481
tenantId: $(testTenant)
7582

83+
cleanServiceConnection:
84+
name: $(clean-test.serviceConnectionName)
85+
id: $(clean-test.serviceConnection.id)
86+
clientId: $(clean-test.serviceConnection.clientId)
87+
tenantId: $(testTenant)
88+
7689
testServiceConnection:
7790
name: $(test-nonprod.serviceConnectionName)
7891
id: $(test-nonprod.serviceConnection.id)

eng/common/templates/stages/dotnet/publish-config-prod.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,13 @@ stages:
6161

6262
publicMirrorAcr:
6363
server: $(public-mirror.server)
64+
resourceGroup: $(public-mirror.resourceGroup)
65+
subscription: $(public-mirror.subscription)
66+
serviceConnection:
67+
name: $(public-mirror.serviceConnectionName)
68+
id: $(public-mirror.serviceConnection.id)
69+
tenantId: $(public-mirror.serviceConnection.tenantId)
70+
clientId: $(public-mirror.serviceConnection.clientId)
6471

6572
buildAcr:
6673
server: $(acr-staging.server)
@@ -73,6 +80,12 @@ stages:
7380
clientId: $(build.serviceConnection.clientId)
7481
tenantId: $(build.serviceConnection.tenantId)
7582

83+
cleanServiceConnection:
84+
name: $(clean.serviceConnectionName)
85+
id: $(clean.serviceConnection.id)
86+
clientId: $(clean.serviceConnection.clientId)
87+
tenantId: $(clean.serviceConnection.tenantId)
88+
7689
testServiceConnection:
7790
name: $(test.serviceConnectionName)
7891
id: $(test.serviceConnection.id)

eng/common/templates/stages/dotnet/publish.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ parameters:
66
publicProjectName: null
77
publishConfig: null
88
pool: ""
9-
isInternalServicingValidation: false
109
isStandalonePublish: false
1110
customPublishInitSteps: []
1211
sourceBuildPipelineDefinitionId: ''
@@ -20,7 +19,6 @@ stages:
2019
internalProjectName: ${{ parameters.internalProjectName }}
2120
publicProjectName: ${{ parameters.publicProjectName }}
2221
publishConfig: ${{ parameters.publishConfig }}
23-
isInternalServicingValidation: ${{ parameters.isInternalServicingValidation }}
2422
isStandalonePublish: ${{ parameters.isStandalonePublish }}
2523
sourceBuildPipelineDefinitionId: ${{ parameters.sourceBuildPipelineDefinitionId }}
2624
sourceBuildPipelineRunId: ${{ parameters.sourceBuildPipelineRunId }}

eng/common/templates/stages/publish.yml

Lines changed: 41 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ parameters:
77

88
publishConfig: null
99

10-
isInternalServicingValidation: false
1110
isStandalonePublish: false
1211

1312
pool:
@@ -29,54 +28,53 @@ parameters:
2928
# Publish Images
3029
################################################################################
3130
stages:
32-
- ${{ if eq(parameters.isInternalServicingValidation, 'false') }}:
33-
- stage: Publish
34-
${{ if eq(parameters.isStandalonePublish, true) }}:
35-
dependsOn: []
31+
- stage: Publish
32+
${{ if eq(parameters.isStandalonePublish, true) }}:
33+
dependsOn: []
34+
${{ else }}:
35+
${{ if and(eq(variables['System.TeamProject'], parameters.internalProjectName), ne(variables['Build.Reason'], 'PullRequest')) }}:
36+
dependsOn: Test
3637
${{ else }}:
37-
${{ if and(eq(variables['System.TeamProject'], parameters.internalProjectName), ne(variables['Build.Reason'], 'PullRequest')) }}:
38-
dependsOn: Test
39-
${{ else }}:
40-
dependsOn: Post_Build
41-
condition: "
38+
dependsOn: Post_Build
39+
condition: "
40+
and(
41+
not(canceled()),
4242
and(
43-
not(canceled()),
44-
and(
45-
contains(variables['stages'], 'publish'),
43+
contains(variables['stages'], 'publish'),
44+
or(
4645
or(
46+
and(
47+
and(
48+
contains(variables['stages'], 'build'),
49+
succeeded('Post_Build')),
50+
and(
51+
contains(variables['stages'], 'test'),
52+
in(dependencies.Test.result, 'Succeeded', 'SucceededWithIssues', 'Skipped'))),
4753
or(
4854
and(
49-
and(
50-
contains(variables['stages'], 'build'),
51-
succeeded('Post_Build')),
55+
not(contains(variables['stages'], 'build')),
5256
and(
5357
contains(variables['stages'], 'test'),
5458
in(dependencies.Test.result, 'Succeeded', 'SucceededWithIssues', 'Skipped'))),
55-
or(
56-
and(
57-
not(contains(variables['stages'], 'build')),
58-
and(
59-
contains(variables['stages'], 'test'),
60-
in(dependencies.Test.result, 'Succeeded', 'SucceededWithIssues', 'Skipped'))),
59+
and(
60+
not(contains(variables['stages'], 'test')),
6161
and(
62-
not(contains(variables['stages'], 'test')),
63-
and(
64-
contains(variables['stages'], 'build'),
65-
succeeded('Post_Build'))))),
66-
not(
67-
or(
68-
contains(variables['stages'], 'build'),
69-
contains(variables['stages'], 'test'))))))"
70-
jobs:
71-
- template: /eng/common/templates/jobs/publish.yml@self
72-
parameters:
73-
pool: ${{ parameters.pool }}
74-
internalProjectName: ${{ parameters.internalProjectName }}
75-
publishConfig: ${{ parameters.publishConfig }}
76-
customPublishVariables: ${{ parameters.customPublishVariables }}
77-
customInitSteps: ${{ parameters.customPublishInitSteps }}
78-
sourceBuildPipelineDefinitionId: ${{ parameters.sourceBuildPipelineDefinitionId }}
79-
sourceBuildPipelineRunId: ${{ parameters.sourceBuildPipelineRunId }}
80-
versionsRepoRef: ${{ parameters.versionsRepoRef }}
81-
versionsRepoPath: ${{ parameters.versionsRepoPath }}
82-
overrideImageInfoCommit: ${{ parameters.overrideImageInfoCommit }}
62+
contains(variables['stages'], 'build'),
63+
succeeded('Post_Build'))))),
64+
not(
65+
or(
66+
contains(variables['stages'], 'build'),
67+
contains(variables['stages'], 'test'))))))"
68+
jobs:
69+
- template: /eng/common/templates/jobs/publish.yml@self
70+
parameters:
71+
pool: ${{ parameters.pool }}
72+
internalProjectName: ${{ parameters.internalProjectName }}
73+
publishConfig: ${{ parameters.publishConfig }}
74+
customPublishVariables: ${{ parameters.customPublishVariables }}
75+
customInitSteps: ${{ parameters.customPublishInitSteps }}
76+
sourceBuildPipelineDefinitionId: ${{ parameters.sourceBuildPipelineDefinitionId }}
77+
sourceBuildPipelineRunId: ${{ parameters.sourceBuildPipelineRunId }}
78+
versionsRepoRef: ${{ parameters.versionsRepoRef }}
79+
versionsRepoPath: ${{ parameters.versionsRepoPath }}
80+
overrideImageInfoCommit: ${{ parameters.overrideImageInfoCommit }}

0 commit comments

Comments
 (0)