@@ -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}"