@@ -2,7 +2,13 @@ image: ubuntu:16.04
2
2
3
3
stages :
4
4
- test
5
- - docker_build
5
+ - build-image
6
+
7
+ workflow :
8
+ rules :
9
+ - if : $CI_MERGE_REQUEST_ID
10
+ when : never
11
+ - when : always
6
12
7
13
variables :
8
14
POSTGRES_DB : dbname # set database
@@ -194,44 +200,67 @@ test-check-cli:
194
200
exit 1
195
201
fi
196
202
197
-
198
- Docker build master :
199
- image : docker:stable
200
- stage : docker_build
201
- when : on_success
202
- variables :
203
- DOCKER_DRIVER : overlay2
204
- DOCKER_HOST : tcp://docker:2375
205
- only :
206
- - master
207
- - docker_build
208
- - docker_run_checkup_with_upload
203
+ .job_template : &build_image_definition
204
+ image : docker:19
205
+ stage : build-image
206
+ artifacts :
207
+ paths :
208
+ - bin
209
209
services :
210
210
- docker:dind
211
- before_script :
212
- - docker login -u gitlab-ci-token -p "${CI_BUILD_TOKEN}" registry.gitlab.com
213
211
script :
214
- - docker build -t registry.gitlab.com/postgres-ai/postgres-checkup:latest --no-cache=true .
215
- - docker push registry.gitlab.com/postgres-ai/postgres-checkup:latest
216
- after_script :
217
- - docker logout registry.gitlab.com
218
-
219
- Docker build for tag :
220
- image : docker:stable
221
- stage : docker_build
222
- when : on_success
212
+ - apk update && apk upgrade && apk add --no-cache bash # TODO(anatoly): Remove dependency.
213
+ - bash ./.ci/docker_build_push.sh
214
+
215
+ .only_var_template : &only_tag_release
216
+ rules :
217
+ - if : $CI_COMMIT_TAG =~ /^[0-9.]+$/
218
+
219
+ .only_var_template : &only_tag_rc
220
+ rules :
221
+ - if : $CI_COMMIT_TAG =~ /^[0-9.]+[\-_]*[a-zA-Z]+[a-zA-Z0-9.\-_]*[a-zA-Z0-9]+$/
222
+
223
+ .only_var_template : &only_master
224
+ rules :
225
+ - if : $CI_COMMIT_BRANCH == "master"
226
+
227
+ .only_var_template : &only_feature
228
+ rules :
229
+ - if : $CI_COMMIT_REF_SLUG != "master" # $CI_COMMIT_REF_SLUG &&
230
+
231
+ build-image-feature-server :
232
+ << : *build_image_definition
233
+ << : *only_feature
223
234
variables :
224
- DOCKER_DRIVER : overlay2
225
- DOCKER_HOST : tcp://docker:2375
226
- only :
227
- variables :
228
- - $CI_COMMIT_TAG != null
229
- services :
230
- - docker:dind
231
- before_script :
232
- - docker login -u gitlab-ci-token -p "${CI_BUILD_TOKEN}" registry.gitlab.com
233
- script :
234
- - docker build -t registry.gitlab.com/postgres-ai/postgres-checkup:$CI_COMMIT_TAG --no-cache=true .
235
- - docker push registry.gitlab.com/postgres-ai/postgres-checkup:$CI_COMMIT_TAG
236
- after_script :
237
- - docker logout registry.gitlab.com
235
+ REGISTRY_USER : " ${CI_REGISTRY_USER}"
236
+ REGISTRY_PASSWORD : " ${CI_REGISTRY_PASSWORD}"
237
+ REGISTRY : " ${CI_REGISTRY}"
238
+ DOCKER_NAME : " registry.gitlab.com/postgres-ai/postgres-checkup"
239
+ TAGS : " ${DOCKER_NAME}:${CI_COMMIT_REF_SLUG}"
240
+
241
+ build-image-master-server :
242
+ << : *build_image_definition
243
+ << : *only_master
244
+ variables :
245
+ DOCKER_NAME : " registry.gitlab.com/postgres-ai/postgres-checkup"
246
+ TAGS : " ${DOCKER_NAME}:master,${DOCKER_NAME}:master-${CI_COMMIT_SHORT_SHA}"
247
+
248
+ build-image-latest-server :
249
+ << : *build_image_definition
250
+ << : *only_tag_release
251
+ variables :
252
+ REGISTRY_USER : " ${DH_CI_REGISTRY_USER}"
253
+ REGISTRY_PASSWORD : " ${DH_CI_REGISTRY_PASSWORD}"
254
+ REGISTRY : " ${DH_CI_REGISTRY}"
255
+ DOCKER_NAME : " postgresai/postgres-checkup"
256
+ TAGS : " ${DOCKER_NAME}:latest,${DOCKER_NAME}:${CI_COMMIT_TAG}"
257
+
258
+ build-image-rc-server :
259
+ << : *build_image_definition
260
+ << : *only_tag_rc
261
+ variables :
262
+ REGISTRY_USER : " ${DH_CI_REGISTRY_USER}"
263
+ REGISTRY_PASSWORD : " ${DH_CI_REGISTRY_PASSWORD}"
264
+ REGISTRY : " ${DH_CI_REGISTRY}"
265
+ DOCKER_NAME : " postgresai/postgres-checkup"
266
+ TAGS : " ${DOCKER_NAME}:${CI_COMMIT_TAG}"
0 commit comments