-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
115 lines (107 loc) · 2.71 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
105
106
107
108
109
110
111
112
113
114
115
stages:
- setup
- unit-test
- build
- release
- deploy_staging
- deploy_qa
variables:
IMAGE: ebasley/cme
NODE_VERSION: node:11.10-alpine
CONTAINER_IMAGE: $IMAGE:$CI_COMMIT_SHORT_SHA
LATEST_CONTAINER_IMAGE: $IMAGE:latest
TAG_CONTAINER_IMAGE: $IMAGE:$CI_COMMIT_REF_NAME
CI_REGISTRY: https://index.docker.io/v1/
CI_REGISTRY_AUTH: ZWJhc2xleTpmcmVlcmlkZTE0
setup:
stage: setup
image: $NODE_VERSION
script:
- yarn
artifacts:
paths:
- node_modules/
tags:
- kube
- main
unit test:
stage: unit-test
image: $NODE_VERSION
script:
- yarn test --coverage
coverage: /All files\s*\|\s*([\d\.]+)/
dependencies:
- setup
tags:
- kube
- main
build:
stage: build
image: $NODE_VERSION
artifacts:
paths:
- build/
script:
- yarn build
tags:
- kube
- main
build and push docker image:
stage: release
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
script:
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$CI_REGISTRY_AUTH\"}}}" > /kaniko/.docker/config.json
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CONTAINER_IMAGE --destination $LATEST_CONTAINER_IMAGE --destination $TAG_CONTAINER_IMAGE
dependencies:
- setup
- build
only:
- develop
- master
tags:
- kube
- main
deploy staging:
stage: deploy_staging
image: google/cloud-sdk
before_script:
- echo ${KUBE_ACCOUNT_KEY} | base64 -di > key.json
script:
- gcloud auth activate-service-account --key-file=key.json
- gcloud config set project main-234215
- gcloud config set container/cluster main
- gcloud config set compute/region europe-west1-b
- gcloud container clusters get-credentials main --region europe-west1-b
- kubectl get pods -n staging -o wide
- kubectl set image deployment/cme cme=$CONTAINER_IMAGE -n staging
- kubectl set env deployment/cme GIT_HASH=$CI_COMMIT_SHA -n staging
only:
- develop
environment:
name: staging
tags:
- kube
- main
deploy qa:
stage: deploy_qa
image: google/cloud-sdk
before_script:
- echo ${KUBE_ACCOUNT_KEY} | base64 -di > key.json
script:
- gcloud auth activate-service-account --key-file=key.json
- gcloud config set project main-234215
- gcloud config set container/cluster main
- gcloud config set compute/region europe-west1-b
- gcloud container clusters get-credentials main --region europe-west1-b
- kubectl get pods -n qa -o wide
- kubectl set image deployment/cme cme=$CONTAINER_IMAGE -n qa
- kubectl set env deployment/cme GIT_HASH=$CI_COMMIT_SHA -n qa
only:
- master
environment:
name: qa
tags:
- kube
- main