Skip to content

Commit b03a4e4

Browse files
authored
Merge pull request #692 from wunderio/feature/approval-rasmus
SLT-962: Manual approval for feature deployments
2 parents c2033f9 + 05c6e88 commit b03a4e4

File tree

1 file changed

+76
-70
lines changed

1 file changed

+76
-70
lines changed

.circleci/config.yml

Lines changed: 76 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,51 @@ commands:
4242
command: |
4343
curl -u $SITE_TEST_BAUTH <<parameters.site_url>>
4444
45+
# Variables
46+
47+
filter_feature_only: &filter_feature_only
48+
branches:
49+
ignore:
50+
- production
51+
- master
52+
- &test_cluster /feature\/test-cluster(\/.*)?/
53+
- &aws_cluster /feature\/aws-cluster(\/.*)?/
54+
- &aks_cluster /feature\/aks-cluster(\/.*)?/
55+
56+
filter_test_cluster_only: &filter_test_cluster_only
57+
branches:
58+
only:
59+
- *test_cluster
60+
61+
filter_aws_cluster_only: &filter_aws_cluster_only
62+
branches:
63+
only:
64+
- *aws_cluster
65+
66+
filter_aks_cluster_only: &filter_aks_cluster_only
67+
branches:
68+
only:
69+
- *aks_cluster
70+
71+
filter_master_only: &filter_master_only
72+
branches:
73+
only:
74+
- master
75+
76+
filter_production_only: &filter_production_only
77+
branches:
78+
only:
79+
- production
80+
4581
workflows:
4682
version: 2
4783
commit:
4884
jobs:
85+
- approval:
86+
type: approval
87+
name: approve-deployment
88+
filters: *filter_feature_only
89+
4990
- silta/drupal-validate: &drupal-validate
5091
name: validate
5192

@@ -75,13 +116,9 @@ workflows:
75116
- silta/drupal-composer-install
76117
- silta/npm-install-build
77118
context: silta_dev
78-
filters:
79-
branches:
80-
ignore:
81-
- production
82-
- /feature\/test-cluster(\/.*)?/
83-
- /feature\/aws-cluster(\/.*)?/
84-
- /feature\/aks-cluster(\/.*)?/
119+
requires:
120+
- approve-deployment
121+
filters: *filter_feature_only
85122

86123
# Deploy job for feature environments.
87124
# Other jobs defined below extend this job.
@@ -109,25 +146,16 @@ workflows:
109146
context: silta_dev
110147
requires:
111148
- build
112-
filters:
113-
branches:
114-
ignore:
115-
- production
116-
- master
117-
- /feature\/test-cluster(\/.*)?/
118-
- /feature\/aws-cluster(\/.*)?/
119-
- /feature\/aks-cluster(\/.*)?/
149+
filters: *filter_feature_only
120150

121151
# Build job for test cluster.
122152
# Extends the job defined for feature environments.
123153
- silta/drupal-build:
124154
<<: *build
125155
name: build-test
126156
context: silta_test
127-
filters:
128-
branches:
129-
only:
130-
- /feature\/test-cluster(\/.*)?/
157+
requires: [ ]
158+
filters: *filter_test_cluster_only
131159

132160
# Deploy job for test cluster.
133161
# Extends the job defined for feature environments.
@@ -138,32 +166,32 @@ workflows:
138166
context: silta_test
139167
requires:
140168
- build-test
141-
filters:
142-
branches:
143-
only:
144-
- /feature\/test-cluster(\/.*)?/
169+
filters: *filter_test_cluster_only
170+
171+
# Build job for master environment.
172+
# Extends the job defined for feature environments.
173+
- silta/drupal-build: &build-master
174+
<<: *build
175+
name: build-master
176+
requires: [ ]
177+
filters: *filter_master_only
145178

146179
# Deploy job for master environment.
147180
# Extends the job defined for feature environments.
148181
- silta/drupal-deploy: &deploy-master
149182
<<: *deploy
150183
name: deploy-master
151184
silta_config: silta/silta.yml,silta/silta-master.yml
152-
filters:
153-
branches:
154-
only:
155-
- master
185+
requires:
186+
- build-master
187+
filters: *filter_master_only
156188

157189
# Build job for master environment in AKS cluster.
158-
# Extends the job defined for feature environments.
190+
# Extends the job defined for master environments.
159191
- silta/drupal-build: &build-master-aks
160-
<<: *build
192+
<<: *build-master
161193
name: build-aks-master
162194
context: silta_aks
163-
filters:
164-
branches:
165-
only:
166-
- master
167195

168196
# Deploy job for master environment in AKS cluster.
169197
# Extends the job defined for master environments.
@@ -176,15 +204,12 @@ workflows:
176204
- build-aks-master
177205

178206
# Build job for AKS cluster.
179-
# Extends the job defined for feature environments.
207+
# Extends the job defined for master environments.
180208
- silta/drupal-build:
181-
<<: *build
209+
<<: *build-master
182210
name: build-aks
183211
context: silta_aks
184-
filters:
185-
branches:
186-
only:
187-
- /feature\/aks-cluster(\/.*)?/
212+
filters: *filter_aks_cluster_only
188213

189214
# Deploy job for AKS cluster.
190215
# Extends the job defined for feature environments.
@@ -195,21 +220,15 @@ workflows:
195220
context: silta_aks
196221
requires:
197222
- build-aks
198-
filters:
199-
branches:
200-
only:
201-
- /feature\/aks-cluster(\/.*)?/
223+
filters: *filter_aks_cluster_only
202224

203225
# Build job for AWS cluster.
204-
# Extends the job defined for feature environments.
226+
# Extends the job defined for master environments.
205227
- silta/drupal-build:
206-
<<: *build
228+
<<: *build-master
207229
name: build-aws
208230
context: silta_aws
209-
filters:
210-
branches:
211-
only:
212-
- /feature\/aws-cluster(\/.*)?/
231+
filters: *filter_aws_cluster_only
213232

214233
# Deploy job for AWS cluster.
215234
# Extends the job defined for feature environments.
@@ -220,20 +239,15 @@ workflows:
220239
context: silta_aws
221240
requires:
222241
- build-aws
223-
filters:
224-
branches:
225-
only:
226-
- /feature\/aws-cluster(\/.*)?/
242+
filters: *filter_aws_cluster_only
227243

228244
# Build job for production environment.
229-
# Extends the job defined for feature environments.
245+
# Extends the job defined for master environments.
230246
- silta/drupal-build:
231-
<<: *build
247+
<<: *build-master
232248
name: build-deploy-prod
233249
context: silta_finland
234-
filters:
235-
branches:
236-
only: production
250+
filters: *filter_production_only
237251

238252
# Deploy job for production environment.
239253
# Extends the job defined for feature environments.
@@ -245,36 +259,28 @@ workflows:
245259
context: silta_finland
246260
requires:
247261
- build-deploy-prod
248-
filters:
249-
branches:
250-
only: production
262+
filters: *filter_production_only
251263

252264
# Test site availability by requesting _ping.php.
253265
- site-test: &site-test
254266
name: "Site test"
255267
requires:
256268
- "deploy-master"
257269
- "Deploy master to AKS cluster"
258-
filters:
259-
branches:
260-
only:
261-
- master
270+
filters: *filter_master_only
262271

263272
# Weekly build and deploy master and master-aks environments.
264273
weekly-build:
265274
triggers:
266275
- schedule:
267276
cron: "0 8 * * 5"
268-
filters:
269-
branches:
270-
only:
271-
- master
277+
filters: *filter_master_only
272278
jobs:
273279
- silta/drupal-validate:
274280
<<: *drupal-validate
275281

276282
- silta/drupal-build:
277-
<<: *build
283+
<<: *build-master
278284

279285
- silta/drupal-deploy:
280286
<<: *deploy-master

0 commit comments

Comments
 (0)