@@ -3,14 +3,17 @@ parameters:
33 internalProjectName : null
44 customInitSteps : []
55 customPublishVariables : []
6+ sourceBuildPipelineDefinitionId : " "
7+ sourceBuildPipelineRunId : " "
68
79jobs :
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)
0 commit comments