-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.gitlab-ci.yml
104 lines (95 loc) · 2.61 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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
variables:
VERSION: "7.1.1" # used for alpha builds
APP_NAME: "td_auth"
COMPOSE_FILE: "ci/docker-compose.yml"
COMPOSE_PROJECT_NAME: "${APP_NAME}_${CI_JOB_ID}"
# See also variables set in ci/env.sh
stages:
- build
- publish
- acceptance
- deploy
before_script:
- source ci/env.sh ecr-login
build:
stage: build
tags:
- docker-compose
script:
- docker-compose run --rm build
after_script:
- docker-compose down -v
artifacts:
paths:
- _build/prod/*.tar.gz
test:
stage: build
tags:
- docker-compose
script:
- docker-compose run --rm test
after_script:
- docker-compose down -v
publish:
stage: publish
only:
- develop
- tags
tags:
- docker
script:
- docker build --build-arg APP_NAME=${APP_NAME} --build-arg APP_VERSION=${APP_VERSION} -t ${ECR_NAMESPACE}/${CI_PROJECT_NAME}:${CI_COMMIT_SHA} .
- docker tag ${ECR_NAMESPACE}/${CI_PROJECT_NAME}:${CI_COMMIT_SHA} ${ECR}/${ECR_NAMESPACE}/${CI_PROJECT_NAME}:${APP_VERSION}
- docker push ${ECR}/${ECR_NAMESPACE}/${CI_PROJECT_NAME}:${APP_VERSION}
acceptance:
stage: acceptance
only:
- develop
- tags
tags:
- docker-compose
dependencies: []
script:
- docker-compose run --rm acceptance
after_script:
- docker-compose logs service
- docker-compose down -v
acceptance:branches:
stage: acceptance
except:
- develop
- main
- tags
tags:
- docker-compose
script:
- docker build --build-arg APP_NAME=${APP_NAME} --build-arg APP_VERSION=${APP_VERSION} -t ${ECR_NAMESPACE}/${CI_PROJECT_NAME}:${CI_COMMIT_SHA} .
- docker tag ${ECR_NAMESPACE}/${CI_PROJECT_NAME}:${CI_COMMIT_SHA} ${ECR}/${ECR_NAMESPACE}/${CI_PROJECT_NAME}:${APP_VERSION}
- docker-compose run --rm acceptance
after_script:
- docker-compose logs service
- docker-compose down -v
publish:branches:
stage: deploy
except:
- develop
- main
- tags
when: manual
tags:
- docker
script:
- docker build --build-arg APP_NAME=${APP_NAME} --build-arg APP_VERSION=${APP_VERSION} -t ${ECR_NAMESPACE}/${CI_PROJECT_NAME}:${CI_COMMIT_SHA} .
- docker tag ${ECR_NAMESPACE}/${CI_PROJECT_NAME}:${CI_COMMIT_SHA} ${ECR}/${ECR_NAMESPACE}/${CI_PROJECT_NAME}:${APP_VERSION}
- docker push ${ECR}/${ECR_NAMESPACE}/${CI_PROJECT_NAME}:${APP_VERSION}
deploy:
stage: deploy
tags:
- kubectl
only:
- develop
- tags
dependencies: []
script:
- aws eks update-kubeconfig --region eu-west-1 --name test-truedat-eks
- kubectl set image deployment.v1.apps/${K8S_DEPLOYMENT} ${K8S_CONTAINER}=${ECR}/${ECR_NAMESPACE}/${CI_PROJECT_NAME}:${APP_VERSION} --record