@@ -243,9 +243,8 @@ jobs:
243243 failTaskOnFailedTests : true
244244 condition : and(eq(variables.runTests, 'True'), succeededOrFailed())
245245#
246- - job : PublishDocker
247- condition : eq('${{ parameters.publishDockerImages }}', true)
248- displayName : PublishDocker
246+ - job : BuildDocker
247+ displayName : BuildDocker
249248 pool :
250249 vmImage : ubuntu-22.04
251250 steps :
@@ -259,55 +258,53 @@ jobs:
259258 VERSION=$(sbt "core/version" | tail -1 | cut -d' ' -f2 | sed 's/\x1b\[[0-9;]*m//g')
260259 echo '##vso[task.setvariable variable=version]'$VERSION
261260 echo '##vso[task.setvariable variable=gittag]'$(git tag -l --points-at HEAD)
261+ # Build all images (runs on every build to validate Dockerfiles)
262262 - task : Docker@2
263263 displayName : Demo Image Build
264264 inputs :
265- containerRegistry : ' SynapseML MCR MSI'
266- repository : ' public/mmlspark/build-demo'
267265 command : ' build'
268266 buildContext : " ."
269267 Dockerfile : ' tools/docker/demo/Dockerfile'
270- tags : $(version)
271- arguments : --build-arg SYNAPSEML_VERSION=$(version)
272- - task : Docker@2
273- displayName : Demo Image Push
274- inputs :
275- containerRegistry : ' SynapseML MCR MSI'
276- repository : ' public/mmlspark/build-demo'
277- command : ' push'
278- tags : $(version)
268+ arguments : --build-arg SYNAPSEML_VERSION=$(version) -t mmlspark-demo:$(version)
279269 - task : Docker@2
280270 displayName : Minimal Image Build
281271 inputs :
282- containerRegistry : ' SynapseML MCR MSI'
283- repository : ' public/mmlspark/build-minimal'
284272 command : ' build'
285273 buildContext : " ."
286274 Dockerfile : ' tools/docker/minimal/Dockerfile'
287- tags : $(version)
288- arguments : --build-arg SYNAPSEML_VERSION=$(version)
275+ arguments : --build-arg SYNAPSEML_VERSION=$(version) -t mmlspark-minimal:$(version)
276+ # Push demo and minimal on every master build
277+ - bash : |
278+ set -e
279+ docker tag mmlspark-demo:$(version) mmlsparkmcr.azurecr.io/public/mmlspark/build-demo:$(version)
280+ docker tag mmlspark-minimal:$(version) mmlsparkmcr.azurecr.io/public/mmlspark/build-minimal:$(version)
281+ condition: and(eq(variables.isMaster, true), eq('${{ parameters.publishDockerImages }}', true))
282+ displayName: Tag Dev Images for ACR
289283 - task : Docker@2
290- displayName : Minimal Image Push
284+ condition : and(eq(variables.isMaster, true), eq('${{ parameters.publishDockerImages }}', true))
285+ displayName : Demo Image Push
291286 inputs :
292287 containerRegistry : ' SynapseML MCR MSI'
293- repository : ' public/mmlspark/build-minimal '
288+ repository : ' public/mmlspark/build-demo '
294289 command : ' push'
295290 tags : $(version)
296291 - task : Docker@2
297- condition : and(eq(variables.isMaster, true), startsWith(variables['gittag'], 'v' ))
298- displayName : Release Image Build
292+ condition : and(eq(variables.isMaster, true), eq('${{ parameters.publishDockerImages }}', true ))
293+ displayName : Minimal Image Push
299294 inputs :
300295 containerRegistry : ' SynapseML MCR MSI'
301- repository : ' public/mmlspark/release'
302- command : ' build'
303- buildContext : " ."
304- Dockerfile : ' tools/docker/demo/Dockerfile'
305- tags : |
306- $(version)
307- latest
308- arguments : --build-arg SYNAPSEML_VERSION=$(version)
296+ repository : ' public/mmlspark/build-minimal'
297+ command : ' push'
298+ tags : $(version)
299+ # Push release only on tagged releases
300+ - bash : |
301+ set -e
302+ docker tag mmlspark-demo:$(version) mmlsparkmcr.azurecr.io/public/mmlspark/release:$(version)
303+ docker tag mmlspark-demo:$(version) mmlsparkmcr.azurecr.io/public/mmlspark/release:latest
304+ condition: and(eq('${{ parameters.publishDockerImages }}', true), eq(variables.isMaster, true), startsWith(variables['gittag'], 'v'))
305+ displayName: Tag Release Image for ACR
309306 - task : Docker@2
310- condition : and(eq(variables.isMaster, true), startsWith(variables['gittag'], 'v'))
307+ condition : and(eq('${{ parameters.publishDockerImages }}', true), eq( variables.isMaster, true), startsWith(variables['gittag'], 'v'))
311308 displayName : Release Image Push
312309 inputs :
313310 containerRegistry : ' SynapseML MCR MSI'
0 commit comments