-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.gitlab-ci.yml
53 lines (40 loc) · 1.85 KB
/
.gitlab-ci.yml
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
image: $CI_REGISTRY/mouse-informatics/docker:latest
variables:
DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2
MOUNT_POINT: /builds/$CI_PROJECT_PATH/mnt
CI_REGISTRY: dockerhub.ebi.ac.uk
CI_REGISTRY_IMAGE: $CI_REGISTRY/$CI_PROJECT_PATH
DOCKER_TLS_CERTDIR: ""
stages:
- build
build_main_image:
stage: build
services:
- name: $CI_REGISTRY/mouse-informatics/dind:latest
alias: docker
rules:
- if: '$CI_COMMIT_REF_NAME == "main" && $CI_PIPELINE_SOURCE != "schedule"'
when: on_success
before_script:
- mkdir -p "$MOUNT_POINT"
- echo "${CI_REGISTRY_PASSWORD}" | docker login -u "${CI_REGISTRY_USER}" --password-stdin ${CI_REGISTRY}
script:
- |
if [[ "${REQUIRES_REBUILD_IMAGE}" == "true" ]]; then
echo "Building latest image"
docker build -t "${CI_REGISTRY_IMAGE}":"${CI_COMMIT_SHA:0:12}" -t "${CI_REGISTRY_IMAGE}":latest -f Dockerfile . | tee ${MOUNT_POINT}/build.log
docker push "${CI_REGISTRY_IMAGE}":latest | tee ${MOUNT_POINT}/push.log
docker push "${CI_REGISTRY_IMAGE}":"${CI_COMMIT_SHA:0:12}" | tee ${MOUNT_POINT}/push.log
docker logout ${CI_REGISTRY}
echo "Pushing to docker hub"
echo "${DOCKER_HUB_PWD}" | docker login --username "${DOCKER_HUB_USER}" --password-stdin
docker tag "${CI_REGISTRY_IMAGE}":latest "${DOCKER_HUB_USER}"/"${DOCKER_HUB_REPO}":latest
docker tag "${CI_REGISTRY_IMAGE}":"${CI_COMMIT_SHA:0:12}" "${DOCKER_HUB_USER}"/"${DOCKER_HUB_REPO}":"${CI_COMMIT_SHA:0:12}"
docker push "${DOCKER_HUB_USER}"/"${DOCKER_HUB_REPO}":latest | tee ${MOUNT_POINT}/dockerhub-push-latest.log
docker push "${DOCKER_HUB_USER}"/"${DOCKER_HUB_REPO}":"${CI_COMMIT_SHA:0:12}" | tee ${MOUNT_POINT}/dockerhub-push-latest.log
fi
- docker logout
artifacts:
paths:
- "$MOUNT_POINT/"