@@ -6,51 +6,82 @@ variables:
66 value : ${{ replace(variables['Build.SourceBranch'],'refs/tags/','') }}
77 - name : isTagBuild
88 value : ${{ startsWith(variables['Build.SourceBranch'],'refs/tags/') }}
9- - name : dockerRegistryServiceConnection
10- value : ' 85ab7e7c-62ce-49e0-b201-bf56e6f3949e'
11- - name : imageRepository
12- value : ' docker-custom-python'
9+ - name : azureContainerRegistryConnection
10+ value : Keboola ACR
11+ - name : azureContainerRegistry
12+ value : keboola.azurecr.io
13+ - name : imageRepository_base
14+ value : docker-custom-python
15+ - name : imageRepository_mlflow
16+ value : docker-python-mlflow
17+ - name : imageRepository_databricks
18+ value : docker-python-databricks
1319
1420trigger :
1521 - refs/tags/*
1622
1723steps :
1824 - script : docker info
19- displayName : ' Info'
25+ displayName : Info
2026
2127 - script : echo '##vso[task.setvariable variable=imageTag]$(Build.BuildId)'
22- displayName : " Set the imageTag to buildId if it's not a tag build"
28+ displayName : Set the imageTag to buildId if it's not a tag build
2329 condition : eq(variables['isTagBuild'], 'false')
2430
31+ - script : docker build -t docker-custom-python .
32+ displayName : Build Docker image
33+
2534 - task : Docker@2
35+ displayName : Login to ACR
2636 inputs :
27- containerRegistry : ' keboola-4338'
28- repository : ' docker-custom-python'
29- command : ' build'
30- Dockerfile : ' **/Dockerfile'
31- tags : |
32- latest
33- $(imageTag)
37+ command : login
38+ containerRegistry : $(azureContainerRegistryConnection)
39+ condition : eq(variables['isTagBuild'], 'true')
3440
41+ # Push base image
3542 - script : |
43+ set -Eeuo pipefail
3644 docker login -u="$(QUAY_USERNAME)" -p="$(QUAY_PASSWORD)" quay.io
37- docker tag keboola.azurecr.io/docker-custom-python quay.io/$(KBC_APP_REPOSITORY):$(imageTag)
38- docker tag keboola.azurecr.io/docker-custom-python quay.io/$(KBC_APP_REPOSITORY):latest
39- docker images
40- docker push quay.io/$(KBC_APP_REPOSITORY):$(imageTag)
41- docker push quay.io/$(KBC_APP_REPOSITORY):latest
45+ docker tag docker-custom-python quay.io/keboola/$(imageRepository_base):$(imageTag)
46+ docker tag docker-custom-python quay.io/keboola/$(imageRepository_base):latest
47+ docker push -a quay.io/keboola/$(imageRepository_base)
4248 condition: eq(variables['isTagBuild'], 'true')
43- displayName: ' Push latest to quay.io'
49+ displayName: Push $(imageRepository_base) to quay.io
4450
45- - task : Docker@2
51+ - script : |
52+ set -Eeuo pipefail
53+ docker tag docker-custom-python $(azureContainerRegistry)/$(imageRepository_base):$(imageTag)
54+ docker push -a $(azureContainerRegistry)/$(imageRepository_base)
55+ displayName: Push $(imageRepository_base) to ACR
56+ condition: eq(variables['isTagBuild'], 'true')
57+
58+ # Push MLFlow
59+ - task : ECRPushImage@1
4660 inputs :
47- containerRegistry : ' keboola-4338'
48- repository : ' docker-custom-python'
49- command : ' push'
50- tags : ' $(imageTag)'
61+ awsCredentials : Production - ECR Distribution - MLFlow
62+ regionName : us-east-1
63+ repositoryName : keboola/$(imageRepository_mlflow)
64+ sourceImageName : docker-custom-python
65+ pushTag : $(imageTag)
66+ displayName : Push $(imageRepository_mlflow) to ECR
67+ condition : eq(variables['isTagBuild'], 'true')
68+
69+ - script : |
70+ set -Eeuo pipefail
71+ docker tag docker-custom-python $(azureContainerRegistry)/$(imageRepository_mlflow):$(imageTag)
72+ docker push -a $(azureContainerRegistry)/$(imageRepository_mlflow)
73+ displayName: Push $(imageRepository_mlflow) to ACR
74+ condition: eq(variables['isTagBuild'], 'true')
75+
76+ # Push Databricks
77+ - script : |
78+ set -Eeuo pipefail
79+ docker tag docker-custom-python $(azureContainerRegistry)/$(imageRepository_databricks):$(imageTag)
80+ docker push -a $(azureContainerRegistry)/$(imageRepository_databricks)
81+ displayName: Push $(imageRepository_databricks) to ACR
5182 condition: eq(variables['isTagBuild'], 'true')
52- displayName : ' Push latest to ACR'
5383
84+ # Publish the latest tag info
5485 - script : printf "%s" "$(imageTag)" > base-python-artifact
5586 condition : eq(variables['isTagBuild'], 'true')
5687 displayName : Create artifact
0 commit comments