-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
54 lines (46 loc) · 1.74 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
image: docker:19.03.1
variables:
DOCKER_TLS_CERTDIR: "/certs"
DOCKER_REGISTRY: "registry.heroku.com"
API_CONTAINER_IMAGE: "digester/api"
WORKER_CONTAINER_IMAGE: "digester/worker"
API_HEROKU_APP: "digester-api-integration"
WORKER_HEROKU_APP: "digester-worker-integration"
services:
- docker:19.03.1-dind
build:
stage: build
only:
- develop
before_script:
- docker info
- cd backend
script:
- docker login --username=_ --password=$HEROKU_API_KEY $DOCKER_REGISTRY
- docker pull $DOCKER_REGISTRY/$WORKER_HEROKU_APP/base
- docker build --tag $WORKER_HEROKU_APP/base:latest --cache-from $DOCKER_REGISTRY/$WORKER_HEROKU_APP/base:latest -f base.Dockerfile .
- docker build --tag $WORKER_HEROKU_APP/web:latest -f worker.Dockerfile .
- docker build --tag $API_HEROKU_APP/web:latest -f api.Dockerfile .
- docker tag $WORKER_HEROKU_APP/web:latest $DOCKER_REGISTRY/$WORKER_HEROKU_APP/web
- docker tag $API_HEROKU_APP/web:latest $DOCKER_REGISTRY/$API_HEROKU_APP/web
- docker push $DOCKER_REGISTRY/$WORKER_HEROKU_APP/base
- docker push $DOCKER_REGISTRY/$WORKER_HEROKU_APP/web
- docker push $DOCKER_REGISTRY/$API_HEROKU_APP/web
deploy:
stage: deploy
only:
- develop
before_script:
- apk add --update npm bash curl
- curl https://cli-assets.heroku.com/install.sh | sh
- heroku --version
- |
cat >~/.netrc <<EOF
machine api.heroku.com
login $HEROKU_EMAIL
password $HEROKU_API_KEY
EOF
- chmod 600 ~/.netrc
script:
- heroku container:release web --app $API_HEROKU_APP
- heroku container:release web --app $WORKER_HEROKU_APP