forked from zenml-io/zenml
-
Notifications
You must be signed in to change notification settings - Fork 0
/
release-cloudbuild.yaml
132 lines (121 loc) · 3.64 KB
/
release-cloudbuild.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
steps:
# build base image - python 3.7
- name: gcr.io/cloud-builders/docker
args:
- '-c'
- |
docker build \
--build-arg ZENML_VERSION=$TAG_NAME \
--build-arg PYTHON_VERSION=3.7 \
--target base \
-f docker/base.Dockerfile . \
-t $$USERNAME/zenml:$TAG_NAME-py3.7
# use latest tags only for official releases
if [[ $TAG_NAME =~ ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$ ]]; then
docker tag $$USERNAME/zenml:$TAG_NAME-py3.7 $$USERNAME/zenml:py3.7
fi
id: build-base-3.7
waitFor: ['-']
entrypoint: bash
secretEnv:
- USERNAME
# build base image - python 3.8
- name: gcr.io/cloud-builders/docker
args:
- '-c'
- |
docker build \
--build-arg ZENML_VERSION=$TAG_NAME \
--build-arg PYTHON_VERSION=3.8 \
--target base \
-f docker/base.Dockerfile . \
-t $$USERNAME/zenml:$TAG_NAME-py3.8 \
-t $$USERNAME/zenml:$TAG_NAME
# use latest tags only for official releases
if [[ $TAG_NAME =~ ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$ ]]; then
docker tag $$USERNAME/zenml:$TAG_NAME-py3.8 $$USERNAME/zenml:py3.8
docker tag $$USERNAME/zenml:$TAG_NAME-py3.8 $$USERNAME/zenml:latest
fi
id: build-base-3.8
waitFor: ['-']
entrypoint: bash
secretEnv:
- USERNAME
# build base image - python 3.9
- name: gcr.io/cloud-builders/docker
args:
- '-c'
- |
docker build \
--build-arg ZENML_VERSION=$TAG_NAME \
--build-arg PYTHON_VERSION=3.9 \
--target base \
-f docker/base.Dockerfile . \
-t $$USERNAME/zenml:$TAG_NAME-py3.9
# use latest tags only for official releases
if [[ $TAG_NAME =~ ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$ ]]; then
docker tag $$USERNAME/zenml:$TAG_NAME-py3.9 $$USERNAME/zenml:py3.9
fi
id: build-base-3.9
waitFor: ['-']
entrypoint: bash
secretEnv:
- USERNAME
# build server image - python 3.8 only
- name: gcr.io/cloud-builders/docker
args:
- '-c'
- |
docker build \
--build-arg ZENML_VERSION=$TAG_NAME \
--build-arg PYTHON_VERSION=3.8 \
-f docker/base.Dockerfile . \
-t $$USERNAME/zenml-server:$TAG_NAME
# use latest tags only for official releases
if [[ $TAG_NAME =~ ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$ ]]; then
docker tag $$USERNAME/zenml-server:$TAG_NAME $$USERNAME/zenml-server:latest
fi
id: build-server
waitFor: ['-']
entrypoint: bash
secretEnv:
- USERNAME
# login to Dockerhub
- name: gcr.io/cloud-builders/docker
args:
- '-c'
- docker login --username=$$USERNAME --password=$$PASSWORD
id: docker-login
entrypoint: bash
secretEnv:
- USERNAME
- PASSWORD
# push base images
- name: gcr.io/cloud-builders/docker
args:
- '-c'
- docker push --all-tags $$USERNAME/zenml
id: push-base
waitFor:
- docker-login
entrypoint: bash
secretEnv:
- USERNAME
# push server images
- name: gcr.io/cloud-builders/docker
args:
- '-c'
- docker push --all-tags $$USERNAME/zenml-server
id: push-server
waitFor:
- docker-login
entrypoint: bash
secretEnv:
- USERNAME
timeout: 3600s
availableSecrets:
secretManager:
- versionName: projects/$PROJECT_ID/secrets/docker-password/versions/1
env: PASSWORD
- versionName: projects/$PROJECT_ID/secrets/docker-username/versions/1
env: USERNAME