forked from beda-software/sdc-ide
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
68 lines (60 loc) · 1.94 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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
stages:
- build_test_release
- deploy
variables:
DOCKER_HOST: tcp://docker:2375
DOCKER_TLS_CERTDIR: ""
RELEASE_IMAGE: "${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}"
BUILD_IMAGE: "${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA}"
CACHE_IMAGE: "${CI_REGISTRY_IMAGE}:latest"
services:
- docker:19-dind
.build_test_release: &build_test_release
stage: build_test_release
image: tmaier/docker-compose:19
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
- |
if [ "${CI_COMMIT_REF_NAME}" = "production" ]; then
export TIER="production"
elif [ "${CI_COMMIT_REF_NAME}" = "staging" ]; then
export TIER="staging"
else
export TIER="develop"
fi
script:
# BUILD
- echo -e "section_start:`date +%s`:build_section\r\e[0KBuild"
- docker pull $CACHE_IMAGE || true
- docker build --cache-from $CACHE_IMAGE --build-arg TIER=$TIER --tag $BUILD_IMAGE .
- docker tag $BUILD_IMAGE $CACHE_IMAGE
- docker push $CACHE_IMAGE
- echo -e "section_end:`date +%s`:build_section\r\e[0K"
# TEST
- echo -e "section_start:`date +%s`:test_section\r\e[0KTest"
- docker run --rm "$BUILD_IMAGE" yarn typecheck
- ./run_test.sh
- echo -e "section_end:`date +%s`:test_section\r\e[0K"
# RELEASE
- echo -e "section_start:`date +%s`:release_section\r\e[0KRelease"
- echo FROM $BUILD_IMAGE as builder > Dockerfile.web.release
- cat Dockerfile.web.release.tpl >> Dockerfile.web.release
- docker build -t $RELEASE_IMAGE -f Dockerfile.web.release .
- docker push $RELEASE_IMAGE
- echo -e "section_end:`date +%s`:release_section\r\e[0K"
build_test_release:
<<: *build_test_release
artifacts:
paths:
- ./web/htmlcov
- ./mobile/htmlcov
deploy_web:
stage: deploy
image: registry.bro.engineering/ansible_deploy/helm_deploy:3
script:
- cd ./chart
- ./deploy.sh
only:
- production
- staging
- develop