/
.drone.yml
156 lines (143 loc) · 3.44 KB
/
.drone.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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
pipeline:
test:
image: node:8
secrets:
- npm_auth_token
commands:
- npm install
- npm test
when:
event: [push, pull_request, tag]
audit:
image: node:8
secrets:
- npm_auth_token
commands:
- npx @lennym/ciaudit
when:
event: [push, pull_request, tag]
compile:
image: node:8
secrets:
- npm_auth_token
commands:
- npm run build --production
when:
event: [push, pull_request, tag]
build:
image: docker:17.09.1
secrets:
- npm_auth_token
environment:
- DOCKER_HOST=tcp://172.17.0.1:2375
commands:
- docker build --build-arg NPM_AUTH_USERNAME=$${NPM_AUTH_USERNAME} --build-arg NPM_AUTH_TOKEN=$${NPM_AUTH_TOKEN} -t asl .
when:
branch: master
event: [push, tag]
image_to_quay:
image: docker:17.09.1
secrets:
- docker_password
environment:
- DOCKER_HOST=tcp://172.17.0.1:2375
commands:
- docker login -u="ukhomeofficedigital+asl" -p=$${DOCKER_PASSWORD} quay.io
- docker tag asl quay.io/ukhomeofficedigital/asl:$${DRONE_COMMIT_SHA}
- docker push quay.io/ukhomeofficedigital/asl:$${DRONE_COMMIT_SHA}
when:
branch: master
event: [push, tag]
trigger_dev_deploy:
image: quay.io/ukhomeofficedigital/drone-trigger:latest
drone_server: https://drone.acp.homeoffice.gov.uk
repo: UKHomeOffice/asl-deploy-bot
branch: master
secrets:
- drone_token
params: REPO=${DRONE_REPO},PLUGIN_NUMBER=${DRONE_BUILD_NUMBER}
deploy_to: dev
when:
branch: master
event: push
configure_deploy:
image: node:8
secrets:
- npm_auth_token
commands:
- mkdir deploy
- npx kube-cookbook --out deploy .kube.${DRONE_DEPLOY_TO}.yaml
when:
environment:
- dev
- preprod
event: deployment
dev_deploy:
image: quay.io/ukhomeofficedigital/kd:v0.5.0
environment:
KUBE_NAMESPACE: asl-dev
INSECURE_SKIP_TLS_VERIFY: "TRUE"
secrets:
- kube_server
- kube_token_dev
commands:
- export KUBE_TOKEN=$${KUBE_TOKEN_DEV}
- kd -f deploy
when:
environment: dev
event: deployment
preprod_deploy:
image: quay.io/ukhomeofficedigital/kd:v0.5.0
environment:
KUBE_NAMESPACE: asl-preprod
INSECURE_SKIP_TLS_VERIFY: "TRUE"
secrets:
- kube_server
- kube_token_preprod
commands:
- export KUBE_TOKEN=$${KUBE_TOKEN_PREPROD}
- kd -f deploy
when:
environment: preprod
event: deployment
post_deploy_test:
image: node:8
secrets:
- npm_auth_token
- aws_access_key
- aws_secret
commands:
- npm install
- npm run test:functional -- --suite smoke
when:
event: deployment
environment:
- dev
- preprod
slack:
image: plugins/slack
secrets:
- slack_webhook
channel: developers
template: >
{{#success build.status}}
Deployment of {{repo.name}} to {{build.deployTo}} succeeded.
`{{build.message}}`
{{else}}
@channel Deployment of {{repo.name}} to {{build.deployTo}} failed - {{build.link}}
`{{build.message}}`
{{/success}}
when:
status: [ failure, success ]
event: deployment
environment:
- dev
- preprod
matrix:
NPM_AUTH_USERNAME:
- asl
services:
selenium:
image: selenium/standalone-chrome
when:
event: deployment