Skip to content

Commit 0eddb5d

Browse files
Update common Docker engineering infrastructure with latest
1 parent 8106d40 commit 0eddb5d

31 files changed

Lines changed: 332 additions & 82 deletions

eng/common/templates/1es-official.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ parameters:
1717
- name: stages
1818
type: stageList
1919
default: []
20+
- name: serviceConnections
21+
type: object
22+
default: []
2023
- name: pool
2124
type: object
2225
default:
@@ -59,4 +62,9 @@ extends:
5962
sourceAnalysisPool: ${{ parameters.sourceAnalysisPool }}
6063
tsa:
6164
enabled: true
62-
stages: ${{ parameters.stages }}
65+
stages:
66+
- template: /eng/common/templates/stages/setup-service-connections.yml@self
67+
parameters:
68+
pool: ${{ parameters.pool }}
69+
serviceConnections: ${{ parameters.serviceConnections }}
70+
- ${{ parameters.stages }}

eng/common/templates/1es-unofficial.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ parameters:
2020
type: stageList
2121
default: []
2222
# 1ES Pipeline Template parameters
23+
- name: serviceConnections
24+
type: object
25+
default: []
2326
- name: pool
2427
type: object
2528
default:
@@ -67,4 +70,9 @@ extends:
6770
sourceAnalysisPool: ${{ parameters.sourceAnalysisPool }}
6871
tsa:
6972
enabled: true
70-
stages: ${{ parameters.stages }}
73+
stages:
74+
- template: /eng/common/templates/stages/setup-service-connections.yml@self
75+
parameters:
76+
pool: ${{ parameters.pool }}
77+
serviceConnections: ${{ parameters.serviceConnections }}
78+
- ${{ parameters.stages }}

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,14 @@ jobs:
6565
parameters:
6666
name: BuildImages
6767
displayName: Build Images
68-
serviceConnection: $(build.serviceConnectionName)
68+
serviceConnections:
69+
- name: acr
70+
id: $(build.serviceConnection.id)
71+
tenantId: $(build.serviceConnection.tenantId)
72+
clientId: $(build.serviceConnection.clientId)
6973
internalProjectName: ${{ parameters.internalProjectName }}
7074
dockerClientOS: ${{ parameters.dockerClientOS }}
71-
args: >
75+
args: >-
7276
build
7377
--manifest $(manifest)
7478
$(imageBuilderPaths)

eng/common/templates/jobs/copy-base-images-staging.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ jobs:
2424
additionalOptions: ${{ parameters.additionalOptions }}
2525
acr:
2626
server: $(acr-staging.server)
27-
serviceConnection: $(internal-mirror.serviceConnectionName)
27+
serviceConnection:
28+
tenantId: $(internal-mirror.serviceConnection.tenantId)
29+
clientId: $(internal-mirror.serviceConnection.clientId)
30+
id: $(internal-mirror.serviceConnection.id)
2831
subscription: $(acr-staging.subscription)
2932
resourceGroup: $(acr-staging.resourceGroup)
3033
repoPrefix: $(mirrorRepoPrefix)

eng/common/templates/jobs/copy-base-images.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
- ${{ parameters.customInitSteps }}
3333
- template: /eng/common/templates/steps/copy-base-images.yml@self
3434
parameters:
35-
acr: ${{ parameters.acr }}
35+
acr: ${{ parameters.acr }}
3636
repoPrefix: ${{ parameters.repoPrefix }}
3737
additionalOptions: ${{ parameters.additionalOptions }}
3838
continueOnError: ${{ parameters.continueOnError }}

eng/common/templates/jobs/generate-matrix.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ parameters:
88
noCache: false
99
customInitSteps: []
1010
commonInitStepsForMatrixAndBuild: []
11+
sourceBuildPipelineRunId: ""
1112

1213
jobs:
1314
- job: ${{ parameters.name }}
@@ -28,9 +29,10 @@ jobs:
2829
parameters:
2930
targetPath: $(Build.ArtifactStagingDirectory)
3031
artifactName: image-info
32+
pipelineRunId: ${{ parameters.sourceBuildPipelineRunId }}
3133
- powershell: |
3234
$additionalGenerateBuildMatrixOptions = "$(additionalGenerateBuildMatrixOptions)"
33-
35+
3436
if ("${{ parameters.isTestStage}}" -eq "true") {
3537
$additionalGenerateBuildMatrixOptions = "$additionalGenerateBuildMatrixOptions --image-info $(artifactsPath)/image-info.json"
3638
}
@@ -59,6 +61,10 @@ jobs:
5961
parameters:
6062
name: matrix
6163
displayName: Generate ${{ parameters.matrixType }} Matrix
62-
serviceConnection: $(build.serviceConnectionName)
64+
serviceConnections:
65+
- name: acr
66+
tenantId: $(build.serviceConnection.tenantId)
67+
clientId: $(build.serviceConnection.clientId)
68+
id: $(build.serviceConnection.id)
6369
internalProjectName: internal
6470
args: $(generateBuildMatrixCommand)

eng/common/templates/jobs/publish.yml

Lines changed: 63 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,17 @@ parameters:
33
internalProjectName: null
44
customInitSteps: []
55
customPublishVariables: []
6+
sourceBuildPipelineDefinitionId: ""
7+
sourceBuildPipelineRunId: ""
68

79
jobs:
810
- job: Publish
911
pool: ${{ parameters.pool }}
1012
timeoutInMinutes: 90
13+
1114
variables:
1215
- name: imageBuilder.commonCmdArgs
13-
value: >
16+
value: >-
1417
--manifest '$(manifest)'
1518
--registry-override '$(acr.server)'
1619
$(manifestVariables)
@@ -29,39 +32,56 @@ jobs:
2932
- name: sourceBuildIdOutputDir
3033
value: $(Build.ArtifactStagingDirectory)/sourceBuildId
3134
- ${{ parameters.customPublishVariables }}
35+
3236
steps:
3337
- template: /eng/common/templates/steps/retain-build.yml@self
38+
3439
- template: /eng/common/templates/steps/init-docker-linux.yml@self
40+
3541
- pwsh: |
3642
$azdoOrgName = Split-Path -Leaf $Env:SYSTEM_COLLECTIONURI
3743
echo "##vso[task.setvariable variable=azdoOrgName]$azdoOrgName"
3844
displayName: Set Publish Variables
45+
3946
- ${{ parameters.customInitSteps }}
47+
4048
- template: /eng/common/templates/steps/validate-branch.yml@self
4149
parameters:
4250
internalProjectName: ${{ parameters.internalProjectName }}
51+
4352
- template: /eng/common/templates/steps/download-build-artifact.yml@self
4453
parameters:
4554
targetPath: $(imageInfoHostDir)
4655
artifactName: image-info
56+
piplineDefinitionId: ${{ parameters.sourceBuildPipelineDefinitionId }}
57+
pipelineRunId: ${{ parameters.sourceBuildPipelineRunId }}
4758
# This can fail in scenarios where no build jobs have run to produce any artifacts
4859
continueOnError: true
60+
4961
- template: /eng/common/templates/steps/set-image-info-path-var.yml@self
5062
parameters:
5163
publicSourceBranch: $(publicSourceBranch)
64+
5265
- template: /eng/common/templates/steps/set-dry-run.yml@self
66+
5367
- script: echo "##vso[task.setvariable variable=imageQueueTime]$(date --rfc-2822)"
5468
displayName: Set Publish Variables
69+
5570
- script: >
5671
$(runImageBuilderCmd) trimUnchangedPlatforms
5772
'$(imageInfoContainerDir)/image-info.json'
5873
displayName: Trim Unchanged Images
74+
5975
- template: /eng/common/templates/steps/run-imagebuilder.yml@self
6076
parameters:
6177
displayName: Copy Images
62-
serviceConnection: $(publish.serviceConnectionName)
78+
serviceConnections:
79+
- name: acr
80+
id: $(publish.serviceConnection.id)
81+
tenantId: $(publish.serviceConnection.tenantId)
82+
clientId: $(publish.serviceConnection.clientId)
6383
internalProjectName: ${{ parameters.internalProjectName }}
64-
args: >
84+
args: >-
6585
copyAcrImages
6686
'$(acr.subscription)'
6787
'$(acr.resourceGroup)'
@@ -74,13 +94,18 @@ jobs:
7494
$(dryRunArg)
7595
$(imageBuilder.pathArgs)
7696
$(imageBuilder.commonCmdArgs)
97+
7798
- template: /eng/common/templates/steps/run-imagebuilder.yml@self
7899
parameters:
79100
displayName: Publish Manifest
80-
serviceConnection: $(publish.serviceConnectionName)
101+
serviceConnections:
102+
- name: acr
103+
id: $(publish.serviceConnection.id)
104+
tenantId: $(publish.serviceConnection.tenantId)
105+
clientId: $(publish.serviceConnection.clientId)
81106
internalProjectName: ${{ parameters.internalProjectName }}
82107
dockerClientOS: ${{ parameters.dockerClientOS }}
83-
args: >
108+
args: >-
84109
publishManifest
85110
'$(imageInfoContainerDir)/image-info.json'
86111
--repo-prefix '$(publishRepoPrefix)'
@@ -89,31 +114,37 @@ jobs:
89114
$(dryRunArg)
90115
$(imageBuilder.pathArgs)
91116
$(imageBuilder.commonCmdArgs)
117+
92118
- template: /eng/common/templates/steps/publish-artifact.yml@self
93119
parameters:
94120
path: $(imageInfoHostDir)
95121
artifactName: image-info-final-$(System.JobAttempt)
96122
displayName: Publish Image Info File Artifact
97123
internalProjectName: ${{ parameters.internalProjectName }}
98124
publicProjectName: ${{ parameters.publicProjectName }}
125+
99126
- template: /eng/common/templates/steps/wait-for-mcr-image-ingestion.yml@self
100127
parameters:
101128
imageInfoPath: '$(imageinfoContainerDir)/image-info.json'
102129
minQueueTime: $(imageQueueTime)
103130
dryRunArg: $(dryRunArg)
104131
condition: succeeded()
132+
105133
- template: /eng/common/templates/steps/publish-readmes.yml@self
106134
parameters:
107135
dryRunArg: $(dryRunArg)
108136
condition: and(succeeded(), eq(variables['publishReadme'], 'true'))
137+
109138
- script: mkdir -p $(Build.ArtifactStagingDirectory)/eol-annotation-data
110139
displayName: Create EOL Annotation Data Directory
140+
111141
- script: >
112142
curl -fSL
113143
--output $(imageInfoHostDir)/full-image-info-orig.json
114144
https://raw.githubusercontent.com/$(gitHubVersionsRepoInfo.org)/$(gitHubVersionsRepoInfo.repo)/refs/heads/$(gitHubVersionsRepoInfo.branch)/$(gitHubImageInfoVersionsPath)
115145
condition: and(succeeded(), eq(variables['publishImageInfo'], 'true'))
116146
displayName: Download Latest Image Info
147+
117148
- script: >
118149
$(runImageBuilderCmd) mergeImageInfo
119150
$(imageInfoContainerDir)
@@ -125,13 +156,18 @@ jobs:
125156
--initial-image-info-path $(imageInfoContainerDir)/full-image-info-orig.json
126157
condition: and(succeeded(), eq(variables['publishImageInfo'], 'true'))
127158
displayName: Merge Image Info
159+
128160
- template: /eng/common/templates/steps/run-imagebuilder.yml@self
129161
parameters:
130162
displayName: Ingest Kusto Image Info
131-
serviceConnection: $(kusto.serviceConnectionName)
163+
serviceConnections:
164+
- name: kusto
165+
id: $(kusto.serviceConnection.id)
166+
tenantId: $(kusto.serviceConnection.tenantId)
167+
clientId: $(kusto.serviceConnection.clientId)
132168
internalProjectName: ${{ parameters.internalProjectName }}
133169
condition: and(succeeded(), eq(variables['ingestKustoImageInfo'], 'true'))
134-
args: >
170+
args: >-
135171
ingestKustoImageInfo
136172
'$(imageInfoContainerDir)/image-info.json'
137173
'$(kusto.cluster)'
@@ -142,13 +178,18 @@ jobs:
142178
--architecture '*'
143179
$(dryRunArg)
144180
$(imageBuilder.commonCmdArgs)
181+
145182
- template: /eng/common/templates/steps/run-imagebuilder.yml@self
146183
parameters:
147184
displayName: Generate EOL Annotation Data
148-
serviceConnection: $(publish.serviceConnectionName)
185+
serviceConnections:
186+
- name: acr
187+
id: $(publish.serviceConnection.id)
188+
tenantId: $(publish.serviceConnection.tenantId)
189+
clientId: $(publish.serviceConnection.clientId)
149190
internalProjectName: internal
150191
condition: and(succeeded(), eq(variables['publishEolAnnotations'], 'true'))
151-
args: >
192+
args: >-
152193
generateEolAnnotationData
153194
'$(artifactsPath)/eol-annotation-data/eol-annotation-data.json'
154195
'$(imageInfoContainerDir)/full-image-info-orig.json'
@@ -157,6 +198,7 @@ jobs:
157198
'$(publishRepoPrefix)'
158199
$(generateEolAnnotationDataExtraOptions)
159200
$(dryRunArg)
201+
160202
- template: /eng/common/templates/steps/publish-artifact.yml@self
161203
parameters:
162204
path: $(Build.ArtifactStagingDirectory)/eol-annotation-data
@@ -165,10 +207,12 @@ jobs:
165207
internalProjectName: internal
166208
publicProjectName: public
167209
condition: and(succeeded(), eq(variables['publishEolAnnotations'], 'true'))
210+
168211
- template: /eng/common/templates/steps/annotate-eol-digests.yml@self
169212
parameters:
170213
internalProjectName: ${{ parameters.internalProjectName }}
171214
dataFile: $(artifactsPath)/eol-annotation-data/eol-annotation-data.json
215+
172216
- script: >
173217
$(runImageBuilderCmd) publishImageInfo
174218
'$(imageInfoContainerDir)/full-image-info-new.json'
@@ -183,6 +227,7 @@ jobs:
183227
$(imageBuilder.commonCmdArgs)
184228
condition: and(succeeded(), eq(variables['publishImageInfo'], 'true'))
185229
displayName: Publish Image Info
230+
186231
# Task displayNames names are hardcoded to reference the task prefix used by 1ES official
187232
# pipelines in eng/common/templates/1es-official.yml.
188233
#
@@ -219,11 +264,19 @@ jobs:
219264
$(imageBuilder.commonCmdArgs)
220265
displayName: Post Publish Notification
221266
condition: and(always(), eq(variables['publishNotificationsEnabled'], 'true'))
267+
222268
- powershell: |
269+
# Default to current build number if parameter was not overridden
270+
$buildId = "${{ parameters.sourceBuildPipelineRunId }}"
271+
if ($buildId -eq "") {
272+
$buildId = "$(Build.BuildNumber)"
273+
}
274+
223275
New-Item -ItemType Directory -Path $(sourceBuildIdOutputDir)
224-
Set-Content -Path $(sourceBuildIdOutputDir)/source-build-id.txt -Value $(sourceBuildId)
276+
Set-Content -Path $(sourceBuildIdOutputDir)/source-build-id.txt -Value "$buildId"
225277
condition: succeeded()
226278
displayName: Write Source Build ID to File
279+
227280
- template: /eng/common/templates/steps/publish-artifact.yml@self
228281
parameters:
229282
path: $(sourceBuildIdOutputDir)

eng/common/templates/jobs/test-images-linux-client.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ parameters:
66
preBuildValidation: false
77
internalProjectName: null
88
customInitSteps: []
9+
sourceBuildPipelineRunId: ""
910

1011
jobs:
1112
- job: ${{ parameters.name }}
@@ -24,3 +25,4 @@ jobs:
2425
preBuildValidation: ${{ parameters.preBuildValidation }}
2526
internalProjectName: ${{ parameters.internalProjectName }}
2627
customInitSteps: ${{ parameters.customInitSteps }}
28+
sourceBuildPipelineRunId: ${{ parameters.sourceBuildPipelineRunId }}

eng/common/templates/jobs/test-images-windows-client.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ parameters:
55
testJobTimeout: 60
66
internalProjectName: null
77
customInitSteps: []
8+
sourceBuildPipelineRunId: ""
89

910
jobs:
1011
- job: ${{ parameters.name }}
@@ -19,3 +20,4 @@ jobs:
1920
parameters:
2021
internalProjectName: ${{ parameters.internalProjectName }}
2122
customInitSteps: ${{ parameters.customInitSteps }}
23+
sourceBuildPipelineRunId: ${{ parameters.sourceBuildPipelineRunId }}

0 commit comments

Comments
 (0)