Skip to content
This repository was archived by the owner on Jul 6, 2021. It is now read-only.

Commit 8579d97

Browse files
author
Anatoly Stansler
committed
feat: improved docker storage
1 parent badaff0 commit 8579d97

File tree

2 files changed

+99
-36
lines changed

2 files changed

+99
-36
lines changed

.ci/docker_build_push.sh

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#!/bin/bash
2+
3+
set -euo pipefail
4+
5+
docker_file=${DOCKER_FILE:-"Dockerfile"}
6+
tags=${TAGS:-""}
7+
8+
registry_user=${REGISTRY_USER:-"${CI_REGISTRY_USER}"}
9+
registry_password=${REGISTRY_PASSWORD:-"${CI_REGISTRY_PASSWORD}"}
10+
registry=${REGISTRY:-"${CI_REGISTRY}"}
11+
12+
docker login --username $registry_user --password "${registry_password}" $registry
13+
14+
tags_build=""
15+
tags_push=""
16+
17+
IFS=',' read -ra ADDR string <<EOF
18+
$tags
19+
EOF
20+
21+
for tag in "${ADDR[@]}"; do
22+
tags_build="${tags_build} --tag ${tag}"
23+
tags_push="${tags_push}${tag}\n"
24+
done
25+
26+
set -x
27+
docker build $tags_build --file $docker_file .
28+
set +x
29+
30+
echo -e "$tags_push" | while read -r tag; do
31+
[ -z "$tag" ] && continue
32+
set -x
33+
docker push $tag
34+
set +x
35+
done

.gitlab-ci.yml

Lines changed: 64 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -194,44 +194,72 @@ test-check-cli:
194194
exit 1
195195
fi
196196
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
197+
.job_template: &build_image_definition
198+
image: docker:19
199+
stage: build-image
200+
artifacts:
201+
paths:
202+
- bin
209203
services:
210204
- docker:dind
211-
before_script:
212-
- docker login -u gitlab-ci-token -p "${CI_BUILD_TOKEN}" registry.gitlab.com
213205
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
223-
variables:
224-
DOCKER_DRIVER: overlay2
225-
DOCKER_HOST: tcp://docker:2375
206+
- apk update && apk upgrade && apk add --no-cache bash # TODO(anatoly): Remove dependency.
207+
- bash ./.ci/docker_build_push.sh
208+
209+
.only_var_template: &only_tag_release
226210
only:
227211
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
212+
- $CI_COMMIT_TAG =~ /^[0-9.]+$/
213+
214+
.only_var_template: &only_tag_rc
215+
only:
216+
variables:
217+
- $CI_COMMIT_TAG =~ /^[0-9.]+[\-_]*[a-zA-Z]+[a-zA-Z0-9.\-_]*[a-zA-Z0-9]+$/
218+
219+
.only_var_template: &only_master
220+
only:
221+
- master
222+
223+
.only_var_template: &only_feature
224+
only:
225+
refs:
226+
- branches
227+
variables:
228+
- $CI_COMMIT_REF_SLUG != "master"
229+
230+
build-image-feature-server:
231+
<<: *build_image_definition
232+
<<: *only_feature
233+
variables:
234+
REGISTRY_USER: "${CI_REGISTRY_USER}"
235+
REGISTRY_PASSWORD: "${CI_REGISTRY_PASSWORD}"
236+
REGISTRY: "${CI_REGISTRY}"
237+
DOCKER_NAME: "registry.gitlab.com/postgres-ai/postgres-checkup"
238+
TAGS: "${DOCKER_NAME}:${CI_COMMIT_REF_SLUG}"
239+
240+
build-image-master-server:
241+
<<: *build_image_definition
242+
<<: *only_master
243+
variables:
244+
DOCKER_NAME: "registry.gitlab.com/postgres-ai/postgres-checkup"
245+
TAGS: "${DOCKER_NAME}:master,${DOCKER_NAME}:master-${CI_COMMIT_SHORT_SHA}"
246+
247+
build-image-latest-server:
248+
<<: *build_image_definition
249+
<<: *only_tag_release
250+
variables:
251+
REGISTRY_USER: "${DH_CI_REGISTRY_USER}"
252+
REGISTRY_PASSWORD: "${DH_CI_REGISTRY_PASSWORD}"
253+
REGISTRY: "${DH_CI_REGISTRY}"
254+
DOCKER_NAME: "postgresai/postgres-checkup"
255+
TAGS: "${DOCKER_NAME}:latest,${DOCKER_NAME}:${CI_COMMIT_TAG}"
256+
257+
build-image-rc-server:
258+
<<: *build_image_definition
259+
<<: *only_tag_rc
260+
variables:
261+
REGISTRY_USER: "${DH_CI_REGISTRY_USER}"
262+
REGISTRY_PASSWORD: "${DH_CI_REGISTRY_PASSWORD}"
263+
REGISTRY: "${DH_CI_REGISTRY}"
264+
DOCKER_NAME: "postgresai/postgres-checkup"
265+
TAGS: "${DOCKER_NAME}:${CI_COMMIT_TAG}"

0 commit comments

Comments
 (0)