@newskit-render/core 1.91.0-alpha.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +40 -0
- package/__tests__/pages/__snapshots__/[articleSlug].test.tsx.snap +6 -6
- package/__tests__/pages/__snapshots__/home.test.tsx.snap +22 -37
- package/components/ErrorPage/ErrorPage.tsx +2 -0
- package/components/article/__tests__/__snapshots__/index.test.tsx.snap +30 -8
- package/components/article/__tests__/index.test.tsx +3 -0
- package/components/article/index.tsx +12 -1
- package/components/footer/index.tsx +2 -0
- package/components/section/layouts/Block.tsx +5 -1
- package/components/section/layouts/__tests__/__snapshots__/Lead.test.tsx.snap +3 -3
- package/components/section/sectionUtils.ts +12 -2
- package/components/teaser/index.tsx +1 -0
- package/components/teaser/variant-types.ts +1 -1
- package/infrastructure/.circleci/config.yml +744 -738
- package/package.json +11 -11
- package/pages/_document.tsx +4 -1
- package/temp/_app.tsx +1 -0
- package/temp/_document.tsx +17 -15
- package/temp/header.tsx +4 -1
|
@@ -1,743 +1,741 @@
|
|
|
1
1
|
version: 2.1
|
|
2
2
|
|
|
3
3
|
orbs:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
resource_class: xlarge
|
|
4
|
+
slack: circleci/slack@3.4.2
|
|
5
|
+
browser-tools: circleci/browser-tools@1.3.0
|
|
6
|
+
|
|
7
|
+
executors:
|
|
8
|
+
helm:
|
|
9
|
+
docker:
|
|
10
|
+
- image: nukengprodservice/helm:0.1.102
|
|
11
|
+
auth:
|
|
12
|
+
username: ${DOCKER_USERNAME}
|
|
13
|
+
password: ${DOCKER_PASSWORD}
|
|
14
|
+
resource_class: xlarge
|
|
16
15
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
node:
|
|
17
|
+
docker:
|
|
18
|
+
- image: cimg/node:16.13.0-browsers
|
|
19
|
+
auth:
|
|
20
|
+
username: ${DOCKER_USERNAME}
|
|
21
|
+
password: ${DOCKER_PASSWORD}
|
|
22
|
+
resource_class: xlarge
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
24
|
+
terraform:
|
|
25
|
+
docker:
|
|
26
|
+
- image: hashicorp/terraform:0.14.2
|
|
27
|
+
auth:
|
|
28
|
+
username: ${DOCKER_USERNAME}
|
|
29
|
+
password: ${DOCKER_PASSWORD}
|
|
30
|
+
resource_class: xlarge
|
|
32
31
|
|
|
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
|
-
|
|
32
|
+
commands:
|
|
33
|
+
aws_assume_role:
|
|
34
|
+
description: Assume AWS role
|
|
35
|
+
parameters:
|
|
36
|
+
aws_access_key_id:
|
|
37
|
+
description: AWS Access Key Id
|
|
38
|
+
type: string
|
|
39
|
+
default: '${AWS_ACCESS_KEY_ID}'
|
|
40
|
+
aws_secret_key:
|
|
41
|
+
description: AWS Secret Key
|
|
42
|
+
type: string
|
|
43
|
+
default: '${AWS_SECRET_ACCESS_KEY}'
|
|
44
|
+
aws_assume_role_arn:
|
|
45
|
+
description: AWS ARN For Assume Role
|
|
46
|
+
type: string
|
|
47
|
+
default: '${AWS_ASSUME_ROLE_ARN}'
|
|
48
|
+
aws_region:
|
|
49
|
+
description: AWS region
|
|
50
|
+
type: string
|
|
51
|
+
default: 'eu-west-1'
|
|
52
|
+
job_type:
|
|
53
|
+
description: The job type to be used
|
|
54
|
+
type: string
|
|
55
|
+
default: 'default'
|
|
56
|
+
eks_cluster:
|
|
57
|
+
description: EKS cluster for kubeconfig
|
|
58
|
+
type: string
|
|
59
|
+
default: '${AWS_EKS_CLUSTER}'
|
|
60
|
+
update_kubeconfig:
|
|
61
|
+
description: Whether to create a kubeconfig
|
|
62
|
+
type: boolean
|
|
63
|
+
default: false
|
|
64
|
+
steps:
|
|
65
|
+
- run:
|
|
66
|
+
name: Assume AWS role
|
|
67
|
+
command: |
|
|
68
|
+
export AWS_ACCESS_KEY_ID=<< parameters.aws_access_key_id >>
|
|
69
|
+
export AWS_SECRET_ACCESS_KEY=<< parameters.aws_secret_key >>
|
|
70
|
+
export temp_role=$(aws sts assume-role \
|
|
71
|
+
--role-arn "<< parameters.aws_assume_role_arn >>" \
|
|
72
|
+
--role-session-name "circle-ci-assume")
|
|
73
|
+
export AWS_ACCESS_KEY_ID_TEMP=$(echo $temp_role | jq .Credentials.AccessKeyId | xargs)
|
|
74
|
+
export AWS_SECRET_ACCESS_KEY_TEMP=$(echo $temp_role | jq .Credentials.SecretAccessKey | xargs)
|
|
75
|
+
export AWS_SESSION_TOKEN_TEMP=$(echo $temp_role | jq .Credentials.SessionToken | xargs)
|
|
76
|
+
echo "export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID_TEMP" >> $BASH_ENV
|
|
77
|
+
echo "export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY_TEMP" >> $BASH_ENV
|
|
78
|
+
echo "export AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN_TEMP" >> $BASH_ENV
|
|
79
|
+
source $BASH_ENV
|
|
80
|
+
cat $BASH_ENV | grep AWS_ACCESS_KEY_ID >> assume_role_creds_<< parameters.job_type >>.txt
|
|
81
|
+
cat $BASH_ENV | grep AWS_SECRET_ACCESS_KEY >> assume_role_creds_<< parameters.job_type >>.txt
|
|
82
|
+
cat $BASH_ENV | grep AWS_SESSION_TOKEN >> assume_role_creds_<< parameters.job_type >>.txt
|
|
83
|
+
- when:
|
|
84
|
+
condition: << parameters.update_kubeconfig >>
|
|
85
|
+
steps:
|
|
86
|
+
- run:
|
|
87
|
+
name: Update kubeconfig clustername
|
|
88
|
+
command: aws --region << parameters.aws_region >> eks update-kubeconfig --name << parameters.eks_cluster >>
|
|
89
|
+
- run:
|
|
90
|
+
name: Update kubectl credentials
|
|
91
|
+
command: cp ~/.kube/config kube_<< parameters.job_type >>.config
|
|
92
|
+
- persist_to_workspace:
|
|
93
|
+
root: ./
|
|
94
|
+
paths:
|
|
95
|
+
- assume_role_creds_<< parameters.job_type >>.txt
|
|
96
|
+
- kube_<< parameters.job_type >>.config
|
|
98
97
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
98
|
+
aws_assume_role_file:
|
|
99
|
+
description: Assume AWS role from the workspace file
|
|
100
|
+
parameters:
|
|
101
|
+
job_type:
|
|
102
|
+
description: The job type to be used
|
|
103
|
+
type: string
|
|
104
|
+
default: 'default'
|
|
105
|
+
steps:
|
|
106
|
+
- run:
|
|
107
|
+
name: Assume role from file
|
|
108
|
+
command: |
|
|
109
|
+
cat assume_role_creds_<< parameters.job_type >>.txt >> $BASH_ENV
|
|
110
|
+
source $BASH_ENV
|
|
112
111
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
112
|
+
terraform_init:
|
|
113
|
+
description: Run Terraform Init
|
|
114
|
+
parameters:
|
|
115
|
+
path:
|
|
116
|
+
type: string
|
|
117
|
+
terraform_arg:
|
|
118
|
+
description: provide terraform arguments
|
|
119
|
+
type: string
|
|
120
|
+
default: ''
|
|
121
|
+
steps:
|
|
122
|
+
- run:
|
|
123
|
+
name: Terraform init
|
|
124
|
+
command: |
|
|
125
|
+
source $BASH_ENV
|
|
126
|
+
cd << parameters.path >>
|
|
127
|
+
terraform init << parameters.terraform_arg >>
|
|
129
128
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
129
|
+
terraform_plan:
|
|
130
|
+
description: Run Terraform Plan
|
|
131
|
+
parameters:
|
|
132
|
+
path:
|
|
133
|
+
type: string
|
|
134
|
+
terraform_arg:
|
|
135
|
+
description: provide terraform arguments
|
|
136
|
+
type: string
|
|
137
|
+
default: ''
|
|
138
|
+
steps:
|
|
139
|
+
- run:
|
|
140
|
+
name: Terraform plan
|
|
141
|
+
command: |
|
|
142
|
+
source $BASH_ENV
|
|
143
|
+
cd << parameters.path >>
|
|
144
|
+
terraform plan -out=tfplan -input=false << parameters.terraform_arg >>
|
|
146
145
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
146
|
+
terraform_apply:
|
|
147
|
+
description: Run Terraform Apply
|
|
148
|
+
parameters:
|
|
149
|
+
path:
|
|
150
|
+
type: string
|
|
151
|
+
steps:
|
|
152
|
+
- run:
|
|
153
|
+
name: Terraform apply
|
|
154
|
+
command: |
|
|
155
|
+
source $BASH_ENV
|
|
156
|
+
cd << parameters.path >>
|
|
157
|
+
terraform apply -input=false tfplan
|
|
159
158
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
159
|
+
terraform_force_apply:
|
|
160
|
+
description: Run Terraform Apply
|
|
161
|
+
parameters:
|
|
162
|
+
path:
|
|
163
|
+
type: string
|
|
164
|
+
steps:
|
|
165
|
+
- run:
|
|
166
|
+
name: Terraform forced apply
|
|
167
|
+
command: |
|
|
168
|
+
source $BASH_ENV
|
|
169
|
+
cd << parameters.path >>
|
|
170
|
+
terraform apply -auto-approve
|
|
172
171
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
172
|
+
git_config_user:
|
|
173
|
+
description: Configure git user
|
|
174
|
+
parameters:
|
|
175
|
+
user:
|
|
176
|
+
type: string
|
|
177
|
+
default: ${GIT_USERNAME}
|
|
178
|
+
email:
|
|
179
|
+
type: string
|
|
180
|
+
default: '${GIT_EMAIL}'
|
|
181
|
+
steps:
|
|
182
|
+
- run:
|
|
183
|
+
name: Configure git user
|
|
184
|
+
command: |
|
|
185
|
+
git config --global user.email "<< parameters.email >>"
|
|
186
|
+
git config --global user.name "<< parameters.user >>"
|
|
188
187
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
188
|
+
# This job relies on working with Pull Requests
|
|
189
|
+
set_helm_environment:
|
|
190
|
+
description: 'Set environment variables for helm'
|
|
191
|
+
parameters:
|
|
192
|
+
environment:
|
|
193
|
+
type: string
|
|
194
|
+
release:
|
|
195
|
+
description: Helm release name i.e ncu-newskit-render
|
|
196
|
+
type: string
|
|
197
|
+
default: <% HELM_RELEASE_NAME >
|
|
198
|
+
namespace:
|
|
199
|
+
description: Kubernetes namespace
|
|
200
|
+
type: string
|
|
201
|
+
node_env:
|
|
202
|
+
description: Node environment name
|
|
203
|
+
type: string
|
|
204
|
+
default: production
|
|
205
|
+
steps:
|
|
206
|
+
- run:
|
|
207
|
+
name: 'Set environment variables for helm'
|
|
208
|
+
command: |
|
|
209
|
+
export PKG_VERSION=$(jq -r .version package.json)
|
|
210
|
+
echo "export PKG_VERSION=$PKG_VERSION" >> $BASH_ENV
|
|
211
|
+
echo 'export KUBECONFIG=$(pwd)/kube_eks_<< parameters.environment >>.config' >> $BASH_ENV
|
|
212
|
+
echo 'export HELM_OPT_NAMESPACE="-n << parameters.namespace >>"' >> $BASH_ENV
|
|
213
|
+
echo 'export HELM_VAL_ENV=<< parameters.environment >>' >> $BASH_ENV
|
|
214
|
+
echo 'export NODE_ENV=<< parameters.node_env >>' >> $BASH_ENV
|
|
215
|
+
if [ -n "$CIRCLE_PULL_REQUEST" ]; then
|
|
216
|
+
export PR_NUMBER=$(echo ${CIRCLE_PULL_REQUEST} |rev | cut -d "/" -f1 |rev)
|
|
217
|
+
echo "export PR_NUMBER=$PR_NUMBER" >> $BASH_ENV
|
|
218
|
+
echo 'export HELM_OPT_SET="--set alb.prSuffix=pr-$PR_NUMBER"' >> $BASH_ENV
|
|
219
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set image.tag=PR-$PR_NUMBER "' >> $BASH_ENV
|
|
220
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.NEWSKIT_API_X_API_KEY=${NEWSKIT_API_X_API_KEY}"' >> $BASH_ENV
|
|
221
|
+
echo 'export HELM_NAME="<< parameters.release >>-pr$PR_NUMBER"' >> $BASH_ENV
|
|
222
|
+
else
|
|
223
|
+
export PR_NUMBER=$(git log --format=%B -n 1 HEAD | grep -oE -m 1 '\(#[0-9]+\)' | grep -oE '[0-9]+')
|
|
224
|
+
echo "export PR_NUMBER=$PR_NUMBER" >> $BASH_ENV
|
|
225
|
+
echo 'export HELM_OPT_SET="--set image.tag=$PKG_VERSION "' >> $BASH_ENV
|
|
226
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.NEWSKIT_API_X_API_KEY=${NEWSKIT_API_X_API_KEY}"' >> $BASH_ENV
|
|
227
|
+
if [ "<< parameters.environment >>" = pr ]; then
|
|
228
|
+
echo 'export HELM_NAME="<< parameters.release >>-pr$PR_NUMBER"' >> $BASH_ENV
|
|
229
|
+
else
|
|
230
|
+
echo 'export HELM_NAME="<< parameters.release >>"' >> $BASH_ENV
|
|
231
|
+
fi
|
|
232
|
+
fi
|
|
234
233
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
234
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set envs.SOURCEPOINT_ACCOUNT_ID=${SOURCEPOINT_ACCOUNT_ID}"' >> $BASH_ENV
|
|
235
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set envs.SOURCEPOINT_PROPERTY_HREF=${SOURCEPOINT_PROPERTY_HREF}"' >> $BASH_ENV
|
|
236
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set envs.EXPERIMENTATION_WEB=${EXPERIMENTATION_WEB}"' >> $BASH_ENV
|
|
237
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set envs.TEALIUM_ACCOUNT_ID=${TEALIUM_ACCOUNT_ID}"' >> $BASH_ENV
|
|
238
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set envs.TEALIUM_PROFILE_ID=${TEALIUM_PROFILE_ID}"' >> $BASH_ENV
|
|
239
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set envs.TEALIUM_ENV=${TEALIUM_ENV}"' >> $BASH_ENV
|
|
240
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.NEW_RELIC_LICENSE_KEY=${NEW_RELIC_LICENSE_KEY}"' >> $BASH_ENV
|
|
241
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.MAIN_GRAPHQL_URL=${MAIN_GRAPHQL_URL}"' >> $BASH_ENV
|
|
242
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.MAIN_COOKIE_NAME=${MAIN_COOKIE_NAME}"' >> $BASH_ENV
|
|
243
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.MAIN_AUDIENCE=${MAIN_AUDIENCE}"' >> $BASH_ENV
|
|
244
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.MAIN_OAUTH_TOKEN=${MAIN_OAUTH_TOKEN}"' >> $BASH_ENV
|
|
245
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.MAIN_CLIENT_ID=${MAIN_CLIENT_ID}"' >> $BASH_ENV
|
|
246
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.MAIN_CLIENT_SECRET=${MAIN_CLIENT_SECRET}"' >> $BASH_ENV
|
|
247
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.MAIN_INTERNAL_AUTH0_DOMAIN=${MAIN_INTERNAL_AUTH0_DOMAIN}"' >> $BASH_ENV
|
|
248
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.MAIN_INTERNAL_CONNECTION=${MAIN_INTERNAL_CONNECTION}"' >> $BASH_ENV
|
|
249
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.MAIN_INTERNAL_CLIENT_ID=${MAIN_INTERNAL_CLIENT_ID}"' >> $BASH_ENV
|
|
250
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.STRIPE_KEY=${STRIPE_KEY}"' >> $BASH_ENV
|
|
251
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.LOQACCOUNT_KEY=${LOQACCOUNT_KEY}"' >> $BASH_ENV
|
|
252
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.SAILTHRU_API_SECRET=${SAILTHRU_API_SECRET}"' >> $BASH_ENV
|
|
253
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.SAILTHRU_DOMAIN=${SAILTHRU_DOMAIN}"' >> $BASH_ENV
|
|
254
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.OKTA_CLIENT_ID=${OKTA_CLIENT_ID}"' >> $BASH_ENV
|
|
255
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.OKTA_CLIENT_SECRET=${OKTA_CLIENT_SECRET}"' >> $BASH_ENV
|
|
256
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.OKTA_DOMAIN=${OKTA_DOMAIN}"' >> $BASH_ENV
|
|
257
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.NEXTAUTH_URL=${NEXTAUTH_URL}"' >> $BASH_ENV
|
|
258
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.NEXTAUTH_SECRET=${NEXTAUTH_SECRET}"' >> $BASH_ENV
|
|
259
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.SN_PASSWORD=${SN_PASSWORD}"' >> $BASH_ENV
|
|
260
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.SN_USERNAME=${SN_USERNAME}"' >> $BASH_ENV
|
|
261
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.SN_ENVIRONMENT=${SN_ENVIRONMENT}"' >> $BASH_ENV
|
|
262
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.ZUORA_PAGE_ID=${ZUORA_PAGE_ID}"' >> $BASH_ENV
|
|
263
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.ZUORA_RSA_SIGNATURE_URI=${ZUORA_RSA_SIGNATURE_URI}"' >> $BASH_ENV
|
|
264
|
+
echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.OPTIMIZELY_SDK_KEY=${OPTIMIZELY_SDK_KEY}"' >> $BASH_ENV
|
|
265
|
+
echo 'export HELM_PATH="helm"' >> $BASH_ENV
|
|
266
|
+
echo 'export HELM_VALUES="--values $HELM_PATH/values-$HELM_VAL_ENV.yaml"' >> $BASH_ENV
|
|
267
|
+
echo 'export HELM_INSTALL="helm install --atomic $HELM_VALUES $HELM_OPT_SET $HELM_OPT_NAMESPACE"' >> $BASH_ENV
|
|
268
|
+
echo 'export HELM_UNINSTALL="helm uninstall $HELM_OPT_NAMESPACE"' >> $BASH_ENV
|
|
269
|
+
echo 'export HELM_LIST="helm list $HELM_OPT_NAMESPACE"' >> $BASH_ENV
|
|
270
|
+
echo 'export HELM_LIST_ALL="$HELM_LIST --all --short"' >> $BASH_ENV
|
|
271
|
+
echo 'export HELM_UPGRADE="helm upgrade --atomic $HELM_VALUES $HELM_OPT_SET $HELM_OPT_NAMESPACE"' >> $BASH_ENV
|
|
273
272
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
273
|
+
jobs:
|
|
274
|
+
init_aws:
|
|
275
|
+
parameters:
|
|
276
|
+
aws_access_key_id:
|
|
277
|
+
description: AWS Access Key Id
|
|
278
|
+
type: string
|
|
279
|
+
default: '${AWS_ACCESS_KEY_ID}'
|
|
280
|
+
aws_secret_key:
|
|
281
|
+
description: AWS Secret Key
|
|
282
|
+
type: string
|
|
283
|
+
default: '${AWS_SECRET_ACCESS_KEY}'
|
|
284
|
+
aws_assume_role_arn:
|
|
285
|
+
description: AWS ARN For Assume Role
|
|
286
|
+
type: string
|
|
287
|
+
default: '${AWS_ASSUME_ROLE_ARN}'
|
|
288
|
+
job_type:
|
|
289
|
+
type: string
|
|
290
|
+
default: 'default'
|
|
291
|
+
update_kubeconfig:
|
|
292
|
+
type: boolean
|
|
293
|
+
default: true
|
|
294
|
+
working_directory: ~/project
|
|
295
|
+
executor: helm
|
|
296
|
+
steps:
|
|
297
|
+
- run:
|
|
298
|
+
name: Install openssh client
|
|
299
|
+
command: apk add openssh-client
|
|
300
|
+
- checkout
|
|
301
|
+
- aws_assume_role:
|
|
302
|
+
aws_access_key_id: << parameters.aws_access_key_id >>
|
|
303
|
+
aws_secret_key: << parameters.aws_secret_key >>
|
|
304
|
+
aws_assume_role_arn: << parameters.aws_assume_role_arn >>
|
|
305
|
+
job_type: << parameters.job_type >>
|
|
306
|
+
update_kubeconfig: << parameters.update_kubeconfig >>
|
|
308
307
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
308
|
+
deploy_terraform:
|
|
309
|
+
parameters:
|
|
310
|
+
team:
|
|
311
|
+
description: Used to generate the S3 bucket key i.e. product-platforms
|
|
312
|
+
type: string
|
|
313
|
+
default: <% TEAM >
|
|
314
|
+
project:
|
|
315
|
+
description: Used to generate the S3 bucket key i.e. ncu-newskit-render
|
|
316
|
+
type: string
|
|
317
|
+
folder:
|
|
318
|
+
description: Used to generate the S3 bucket key and navigate to terraform folder i.e. infrastructure-ecr
|
|
319
|
+
type: string
|
|
320
|
+
environment:
|
|
321
|
+
type: string
|
|
322
|
+
default: dev
|
|
323
|
+
apply:
|
|
324
|
+
type: boolean
|
|
325
|
+
default: false
|
|
326
|
+
working_directory: ~/project
|
|
327
|
+
executor: terraform
|
|
328
|
+
steps:
|
|
329
|
+
- checkout
|
|
330
|
+
- attach_workspace:
|
|
331
|
+
at: ~/project
|
|
332
|
+
- aws_assume_role_file
|
|
333
|
+
- terraform_init:
|
|
334
|
+
path: << parameters.folder >>
|
|
335
|
+
terraform_arg: -backend-config="key=<<parameters.team >>/<< parameters.project >>/<< parameters.folder >>/<< parameters.environment >>/terraform.tfstate"
|
|
336
|
+
- terraform_plan:
|
|
337
|
+
path: << parameters.folder >>
|
|
338
|
+
terraform_arg: -var-file=<< parameters.environment >>.tfvars
|
|
339
|
+
- when:
|
|
340
|
+
condition: << parameters.apply >>
|
|
341
|
+
steps:
|
|
342
|
+
- terraform_apply:
|
|
343
|
+
path: << parameters.folder >>
|
|
345
344
|
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
345
|
+
install_deps:
|
|
346
|
+
working_directory: ~/project
|
|
347
|
+
executor: node
|
|
348
|
+
steps:
|
|
349
|
+
- checkout
|
|
350
|
+
- restore_cache:
|
|
351
|
+
keys:
|
|
352
|
+
- <% PACKAGE_MANAGER >-build-{{ .Environment.BUILD_CACHE_VERSION }}-{{ checksum "<% PACKAGE_MANAGER_LOCK_FILE >" }}
|
|
353
|
+
- <% PACKAGE_MANAGER >-build-{{ .Environment.BUILD_CACHE_VERSION }}-
|
|
354
|
+
- restore_cache:
|
|
355
|
+
keys:
|
|
356
|
+
- cypress-{{ .Environment.CYPRESS_CACHE_VERSION }}-{{ checksum "<% PACKAGE_MANAGER_LOCK_FILE >" }}
|
|
357
|
+
- run:
|
|
358
|
+
name: 'Install dependencies'
|
|
359
|
+
command: <% PACKAGE_INSTALL >
|
|
360
|
+
- run:
|
|
361
|
+
name: 'Build the project'
|
|
362
|
+
command: <% PACKAGE_RUN > build
|
|
363
|
+
- save_cache:
|
|
364
|
+
key: <% PACKAGE_MANAGER >-build-{{ .Environment.BUILD_CACHE_VERSION }}-{{ checksum "<% PACKAGE_MANAGER_LOCK_FILE >" }}
|
|
365
|
+
paths:
|
|
366
|
+
- ~/.cache/yarn
|
|
367
|
+
- ~/.npm
|
|
368
|
+
- node_modules
|
|
369
|
+
- .next/cache
|
|
370
|
+
- save_cache:
|
|
371
|
+
key: cypress-{{ .Environment.CYPRESS_CACHE_VERSION }}-{{ checksum "<% PACKAGE_MANAGER_LOCK_FILE >" }}
|
|
372
|
+
paths:
|
|
373
|
+
- ~/.cache/Cypress
|
|
374
|
+
- persist_to_workspace:
|
|
375
|
+
root: ./
|
|
376
|
+
paths: .next
|
|
378
377
|
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
378
|
+
lint:
|
|
379
|
+
executor: node
|
|
380
|
+
steps:
|
|
381
|
+
- checkout
|
|
382
|
+
- attach_workspace:
|
|
383
|
+
at: ~/project
|
|
384
|
+
- restore_cache:
|
|
385
|
+
keys:
|
|
386
|
+
- <% PACKAGE_MANAGER >-build-{{ .Environment.BUILD_CACHE_VERSION }}-{{ checksum "<% PACKAGE_MANAGER_LOCK_FILE >" }}
|
|
387
|
+
- run:
|
|
388
|
+
name: "Run lint"
|
|
389
|
+
command: <% PACKAGE_RUN > lint
|
|
391
390
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
391
|
+
test_unit:
|
|
392
|
+
executor: node
|
|
393
|
+
steps:
|
|
394
|
+
- checkout
|
|
395
|
+
- attach_workspace:
|
|
396
|
+
at: ~/project
|
|
397
|
+
- restore_cache:
|
|
398
|
+
keys:
|
|
399
|
+
- <% PACKAGE_MANAGER >-build-{{ .Environment.BUILD_CACHE_VERSION }}-{{ checksum "<% PACKAGE_MANAGER_LOCK_FILE >" }}
|
|
400
|
+
- run:
|
|
401
|
+
name: 'Run tests'
|
|
402
|
+
command: |
|
|
403
|
+
mkdir tests
|
|
404
|
+
<% PACKAGE_RUN > test:unit:ci
|
|
405
|
+
environment:
|
|
406
|
+
JEST_JUNIT_OUTPUT_DIR: /home/circleci/project/tests
|
|
407
|
+
- store_test_results:
|
|
408
|
+
path: tests
|
|
409
|
+
- store_artifacts:
|
|
410
|
+
path: tests
|
|
411
|
+
destination: tests
|
|
413
412
|
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
413
|
+
e2e_test:
|
|
414
|
+
executor: node
|
|
415
|
+
steps:
|
|
416
|
+
- checkout
|
|
417
|
+
- attach_workspace:
|
|
418
|
+
at: ~/project
|
|
419
|
+
- restore_cache:
|
|
420
|
+
keys:
|
|
421
|
+
- <% PACKAGE_MANAGER >-build-{{ .Environment.BUILD_CACHE_VERSION }}-{{ checksum "<% PACKAGE_MANAGER_LOCK_FILE >" }}
|
|
422
|
+
- restore_cache:
|
|
423
|
+
keys:
|
|
424
|
+
- cypress-{{ .Environment.CYPRESS_CACHE_VERSION }}-{{ checksum "<% PACKAGE_MANAGER_LOCK_FILE >" }}
|
|
425
|
+
- run:
|
|
426
|
+
name: 'Export Newskit API variables'
|
|
427
|
+
command: |
|
|
428
|
+
echo "export NEWSKIT_API_X_API_KEY=$NEWSKIT_API_X_API_KEY" >> $BASH_ENV
|
|
429
|
+
echo "export NEWSKIT_API_ENV_URL=$NEWSKIT_API_ENV_URL" >> $BASH_ENV
|
|
430
|
+
- run:
|
|
431
|
+
name: 'install cypress dependencies'
|
|
432
|
+
command: |
|
|
433
|
+
sudo apt-get update
|
|
434
|
+
sudo apt-get install libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb
|
|
435
|
+
- browser-tools/install-chrome
|
|
436
|
+
- browser-tools/install-chromedriver
|
|
437
|
+
- run:
|
|
438
|
+
name: Check chrome install
|
|
439
|
+
command: |
|
|
440
|
+
google-chrome --version
|
|
441
|
+
chromedriver --version
|
|
442
|
+
- run:
|
|
443
|
+
name: 'start server'
|
|
444
|
+
command: |
|
|
445
|
+
yarn start:test:server
|
|
446
|
+
background: true
|
|
447
|
+
- run:
|
|
448
|
+
name: 'Wait test server'
|
|
449
|
+
command: |
|
|
450
|
+
yarn wait:server
|
|
451
|
+
- run:
|
|
452
|
+
name: 'Run e2e tests'
|
|
453
|
+
command: |
|
|
454
|
+
<% PACKAGE_RUN > test:e2e
|
|
455
|
+
- store_artifacts:
|
|
456
|
+
path: cypress/screenshots
|
|
457
|
+
- store_artifacts:
|
|
458
|
+
path: cypress/videos
|
|
460
459
|
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
460
|
+
publish_docker:
|
|
461
|
+
parameters:
|
|
462
|
+
project:
|
|
463
|
+
description: Project name that will be used to tag docker images i.e ncu-newskit-render
|
|
464
|
+
type: string
|
|
465
|
+
default: <% PROJECT_NAME >
|
|
466
|
+
working_directory: ~/project
|
|
467
|
+
executor: node
|
|
468
|
+
steps:
|
|
469
|
+
- checkout
|
|
470
|
+
- attach_workspace:
|
|
471
|
+
at: ~/project
|
|
472
|
+
- restore_cache:
|
|
473
|
+
keys:
|
|
474
|
+
- <% PACKAGE_MANAGER >-build-{{ .Environment.BUILD_CACHE_VERSION }}-{{ checksum "<% PACKAGE_MANAGER_LOCK_FILE >" }}
|
|
475
|
+
- setup_remote_docker
|
|
476
|
+
- run:
|
|
477
|
+
name: Install aws cli
|
|
478
|
+
command: |
|
|
479
|
+
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
|
|
480
|
+
sudo apt-get update
|
|
481
|
+
sudo apt-get install python python3-pip
|
|
482
|
+
sudo pip install awscli
|
|
483
|
+
- aws_assume_role_file
|
|
484
|
+
- run:
|
|
485
|
+
name: Publish Docker containers to AWS ECR
|
|
486
|
+
command: |
|
|
487
|
+
if [ -n "$CIRCLE_PULL_REQUEST" ]; then
|
|
488
|
+
export PR_NUMBER=$(echo ${CIRCLE_PULL_REQUEST} |rev | cut -d "/" -f1 |rev)
|
|
489
|
+
TAGS="PR-$PR_NUMBER"
|
|
490
|
+
else
|
|
491
|
+
TAG_VERSION=$(jq -r .version package.json)
|
|
492
|
+
TAGS="$TAG_VERSION latest"
|
|
493
|
+
fi
|
|
494
|
+
DOCKER_REGISTRY_URL="$AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com"
|
|
496
495
|
|
|
497
|
-
|
|
496
|
+
npm prune --production
|
|
498
497
|
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
498
|
+
echo $DOCKER_PASSWORD | docker login -u $DOCKER_USERNAME --password-stdin
|
|
499
|
+
docker build -t << parameters.project >> .
|
|
500
|
+
$(aws ecr get-login --no-include-email)
|
|
501
|
+
for tag in $TAGS; do
|
|
502
|
+
docker tag << parameters.project >> $DOCKER_REGISTRY_URL/<< parameters.project >>:$tag;
|
|
503
|
+
docker push $DOCKER_REGISTRY_URL/<< parameters.project >>:$tag;
|
|
504
|
+
done
|
|
506
505
|
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
506
|
+
uninstall_helm:
|
|
507
|
+
parameters:
|
|
508
|
+
environment:
|
|
509
|
+
description: Environment name
|
|
510
|
+
type: string
|
|
511
|
+
release:
|
|
512
|
+
description: Helm release name i.e ncu-newskit-render
|
|
513
|
+
type: string
|
|
514
|
+
default: <% HELM_RELEASE_NAME >
|
|
515
|
+
namespace:
|
|
516
|
+
description: Kubernetes namespace without environment suffix
|
|
517
|
+
type: string
|
|
518
|
+
default: <% K8S_NAMESPACE >
|
|
519
|
+
working_directory: ~/project
|
|
520
|
+
executor: helm
|
|
521
|
+
steps:
|
|
522
|
+
- run:
|
|
523
|
+
name: Install ssh client
|
|
524
|
+
command: apk add openssh-client
|
|
525
|
+
- checkout
|
|
526
|
+
- attach_workspace:
|
|
527
|
+
at: ~/project
|
|
528
|
+
- aws_assume_role_file:
|
|
529
|
+
job_type: eks_<< parameters.environment >>
|
|
530
|
+
- set_helm_environment:
|
|
531
|
+
environment: << parameters.environment >>
|
|
532
|
+
release: << parameters.release >>
|
|
533
|
+
namespace: << parameters.namespace>>-<< parameters.environment >>
|
|
534
|
+
- run:
|
|
535
|
+
name: Helm uninstall
|
|
536
|
+
command: |
|
|
537
|
+
source $BASH_ENV
|
|
538
|
+
if $HELM_LIST | grep -q $HELM_NAME; then $HELM_UNINSTALL $HELM_NAME; fi
|
|
540
539
|
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
540
|
+
remove_all_pr_environments:
|
|
541
|
+
parameters:
|
|
542
|
+
namespace:
|
|
543
|
+
description: Kubernetes namespace without environment suffix
|
|
544
|
+
type: string
|
|
545
|
+
default: <% K8S_NAMESPACE >
|
|
546
|
+
working_directory: ~/project
|
|
547
|
+
executor: helm
|
|
548
|
+
steps:
|
|
549
|
+
- run:
|
|
550
|
+
name: Install ssh client
|
|
551
|
+
command: apk add openssh-client
|
|
552
|
+
- checkout
|
|
553
|
+
- attach_workspace:
|
|
554
|
+
at: ~/project
|
|
555
|
+
- aws_assume_role_file:
|
|
556
|
+
job_type: eks_pr
|
|
557
|
+
- set_helm_environment:
|
|
558
|
+
environment: pr
|
|
559
|
+
namespace: << parameters.namespace>>-pr
|
|
560
|
+
- run:
|
|
561
|
+
name: Remove all PR environments
|
|
562
|
+
command: |
|
|
563
|
+
source $BASH_ENV
|
|
564
|
+
if [ -n "$($HELM_LIST_ALL)" ]; then $HELM_LIST_ALL | xargs $HELM_UNINSTALL; fi
|
|
566
565
|
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
566
|
+
upgrade_helm:
|
|
567
|
+
parameters:
|
|
568
|
+
environment:
|
|
569
|
+
description: Environment name
|
|
570
|
+
type: string
|
|
571
|
+
node_env:
|
|
572
|
+
description: Node environment name
|
|
573
|
+
type: string
|
|
574
|
+
default: production
|
|
575
|
+
create:
|
|
576
|
+
description: Whether to create a new Helm package
|
|
577
|
+
type: boolean
|
|
578
|
+
default: false
|
|
579
|
+
release:
|
|
580
|
+
description: Helm release name i.e ncu-newskit-render
|
|
581
|
+
type: string
|
|
582
|
+
default: <% HELM_RELEASE_NAME >
|
|
583
|
+
helm_repo:
|
|
584
|
+
description: Helm S3 repo url
|
|
585
|
+
type: string
|
|
586
|
+
default: s3://<% HELM_BUCKET_NAME >
|
|
587
|
+
namespace:
|
|
588
|
+
description: Kubernetes namespace without environment suffix
|
|
589
|
+
type: string
|
|
590
|
+
default: <% K8S_NAMESPACE >
|
|
591
|
+
working_directory: ~/project
|
|
592
|
+
executor: helm
|
|
593
|
+
steps:
|
|
594
|
+
- run:
|
|
595
|
+
name: Install ssh client
|
|
596
|
+
command: apk add openssh-client
|
|
597
|
+
- checkout
|
|
598
|
+
- attach_workspace:
|
|
599
|
+
at: ~/project
|
|
600
|
+
- set_helm_environment:
|
|
601
|
+
environment: << parameters.environment >>
|
|
602
|
+
node_env: << parameters.node_env >>
|
|
603
|
+
release: << parameters.release >>
|
|
604
|
+
namespace: << parameters.namespace >>-<< parameters.environment >>
|
|
605
|
+
- run:
|
|
606
|
+
name: Install helm s3 plugin
|
|
607
|
+
command: helm plugin install https://github.com/hypnoglow/helm-s3.git
|
|
608
|
+
- aws_assume_role_file
|
|
609
|
+
- when:
|
|
610
|
+
condition: << parameters.create >>
|
|
611
|
+
steps:
|
|
612
|
+
- run:
|
|
613
|
+
name: Helm package and upload
|
|
614
|
+
command: |
|
|
615
|
+
source $BASH_ENV
|
|
616
|
+
if ! aws s3 ls << parameters.helm_repo >>/<< parameters.release >>/ | grep index.yaml; then
|
|
617
|
+
helm s3 init << parameters.helm_repo >>/<< parameters.release >>
|
|
618
|
+
else
|
|
619
|
+
echo "Repo already initialized";
|
|
620
|
+
fi
|
|
621
|
+
helm repo add << parameters.release >> << parameters.helm_repo >>/<< parameters.release >>
|
|
622
|
+
helm package -u --version $PKG_VERSION --app-version $PKG_VERSION $HELM_PATH;
|
|
623
|
+
mv << parameters.release >>-*.tgz << parameters.release >>-$PKG_VERSION.tgz;
|
|
624
|
+
if [ "$HELM_VAL_ENV" != "pr" ]; then
|
|
625
|
+
helm s3 push --force ./<< parameters.release >>-$PKG_VERSION.tgz << parameters.release >>;
|
|
626
|
+
fi
|
|
627
|
+
- unless:
|
|
628
|
+
condition: << parameters.create >>
|
|
629
|
+
steps:
|
|
630
|
+
- run:
|
|
631
|
+
name: Download helm chart
|
|
632
|
+
command: |
|
|
633
|
+
source $BASH_ENV
|
|
634
|
+
helm repo add << parameters.release >> << parameters.helm_repo >>/<< parameters.release >>
|
|
635
|
+
helm pull << parameters.release >>/<< parameters.release >> --version $PKG_VERSION;
|
|
637
636
|
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
637
|
+
- aws_assume_role_file:
|
|
638
|
+
job_type: eks_<< parameters.environment >>
|
|
639
|
+
- run:
|
|
640
|
+
name: Helm deploy
|
|
641
|
+
command: |
|
|
642
|
+
source $BASH_ENV
|
|
643
|
+
$HELM_UPGRADE --install $HELM_NAME << parameters.release >>-*.tgz --version $PKG_VERSION
|
|
644
|
+
- when:
|
|
645
|
+
condition:
|
|
646
|
+
and:
|
|
647
|
+
- not:
|
|
648
|
+
equal: [pr, << parameters.environment >>]
|
|
649
|
+
steps:
|
|
650
|
+
- run:
|
|
651
|
+
name: Add Deployment Marker to New Relic
|
|
652
|
+
command: |
|
|
653
|
+
CURRENT_VERSION=$(jq -r .version ./package.json)
|
|
654
|
+
APP_ID=$(curl -s -X GET "https://api.newrelic.com/v2/applications.json" -H "X-Api-Key:${TF_VAR_newrelic_api_key}" -G -d "filter[name]=<% PROJECT_PREFIX >:<% PROJECT_NAME >:<< parameters.environment >>" | jq -r '.applications[]' | jq -r '.id')
|
|
655
|
+
curl -X POST "https://api.newrelic.com/v2/applications/$APP_ID/deployments.json" -H "Api-Key:${TF_VAR_newrelic_api_key}" -i -H "Content-Type: application/json" -d '{ "deployment": { "revision": "'$CURRENT_VERSION'" } }'
|
|
657
656
|
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
657
|
+
create_release:
|
|
658
|
+
executor: helm
|
|
659
|
+
working_directory: ~/project
|
|
660
|
+
steps:
|
|
661
|
+
- run:
|
|
662
|
+
name: Install ssh client and npm
|
|
663
|
+
command: apk add openssh-client npm
|
|
664
|
+
- add_ssh_keys:
|
|
665
|
+
fingerprints:
|
|
666
|
+
- '<% SSH_KEY >'
|
|
667
|
+
- checkout
|
|
668
|
+
- attach_workspace:
|
|
669
|
+
at: ~/project
|
|
670
|
+
- aws_assume_role:
|
|
671
|
+
aws_access_key_id: ${RELEASE_AWS_ACCESS_KEY_ID}
|
|
672
|
+
aws_secret_key: ${RELEASE_AWS_SECRET_ACCESS_KEY}
|
|
673
|
+
aws_assume_role_arn: ${BOOK_RELEASE_ROLE_ARN}
|
|
674
|
+
job_type: release
|
|
675
|
+
- run:
|
|
676
|
+
name: Create release request
|
|
677
|
+
command: |
|
|
678
|
+
source $BASH_ENV
|
|
679
|
+
CURRENT_VERSION=$(jq -r .version ./package.json)
|
|
681
680
|
|
|
682
|
-
|
|
681
|
+
npm install --no-save release-documentation-cli@5.2.4
|
|
683
682
|
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
683
|
+
# If your tags are prefixed (i.e. lerna) check the --tagFilter parameter
|
|
684
|
+
echo "Creating a release request for $CURRENT_VERSION to be deployed to production."
|
|
685
|
+
# Instead of booking real releases in the production google sheet and RoD, post rows to the debug google sheet (found next to the the production sheet)
|
|
686
|
+
# Useful when first setting up booking releases
|
|
687
|
+
# Remove when all config is validated
|
|
688
|
+
$(npm bin)/release new --isDebug --productOwner "$PRODUCT_OWNER" --runOnCi --bookRelease
|
|
690
689
|
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
690
|
+
promote_release:
|
|
691
|
+
executor: node
|
|
692
|
+
working_directory: ~/project
|
|
693
|
+
steps:
|
|
694
|
+
- add_ssh_keys:
|
|
695
|
+
fingerprints:
|
|
696
|
+
- '<% SSH_KEY >'
|
|
697
|
+
- checkout
|
|
698
|
+
- attach_workspace:
|
|
699
|
+
at: ~/project
|
|
700
|
+
- run:
|
|
701
|
+
name: Promote release
|
|
702
|
+
command: |
|
|
703
|
+
export CURRENT_VERSION=$(jq -r .version ./package.json)
|
|
704
|
+
echo "export CURRENT_VERSION=$CURRENT_VERSION" >> $BASH_ENV
|
|
706
705
|
|
|
707
|
-
|
|
706
|
+
npm install --no-save release-documentation-cli@5.2.4
|
|
708
707
|
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
708
|
+
# If your tags are prefixed (i.e. lerna) check the --tagFilter parameter
|
|
709
|
+
$(npm bin)/release promote
|
|
710
|
+
echo "$CURRENT_VERSION published to npm"
|
|
711
|
+
- slack/notify:
|
|
712
|
+
color: '#42e2f4'
|
|
713
|
+
message: "Hi all, \n <% PROJECT_NAME > version <% GIT_REPO >/releases/tag/${CURRENT_VERSION} has been released."
|
|
714
|
+
webhook: ${SLACK_RELEASES_WEBHOOK}
|
|
716
715
|
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
716
|
+
bump_version:
|
|
717
|
+
executor: node
|
|
718
|
+
working_directory: ~/project
|
|
719
|
+
steps:
|
|
720
|
+
- add_ssh_keys:
|
|
721
|
+
fingerprints:
|
|
722
|
+
- '<% SSH_KEY >'
|
|
723
|
+
- checkout
|
|
724
|
+
- attach_workspace:
|
|
725
|
+
at: ~/project
|
|
726
|
+
- git_config_user
|
|
727
|
+
- run:
|
|
728
|
+
name: Run standard-version
|
|
729
|
+
command: |
|
|
730
|
+
npx standard-version --releaseCommitMessageFormat='chore(release): {{currentTag}} [ci skip]'
|
|
731
|
+
git push --follow-tags origin master
|
|
732
|
+
- persist_to_workspace:
|
|
733
|
+
root: ./
|
|
734
|
+
paths:
|
|
735
|
+
- package.json
|
|
737
736
|
|
|
738
|
-
jobs:
|
|
739
737
|
add_github_comment:
|
|
740
|
-
executor:
|
|
738
|
+
executor: node
|
|
741
739
|
steps:
|
|
742
740
|
- run:
|
|
743
741
|
name: Post a comment to GitHub
|
|
@@ -781,24 +779,24 @@ only_on_master_branch: &only_on_master_branch
|
|
|
781
779
|
workflows:
|
|
782
780
|
pull_request:
|
|
783
781
|
jobs:
|
|
784
|
-
-
|
|
782
|
+
- install_deps:
|
|
785
783
|
name: install_deps
|
|
786
784
|
context: <% PROJECT_NAME >-dev
|
|
787
785
|
<<: *only_on_pr_branch
|
|
788
|
-
-
|
|
786
|
+
- e2e_test:
|
|
789
787
|
<<: *only_on_pr_branch
|
|
790
788
|
context: <% PROJECT_NAME >-dev
|
|
791
789
|
name: e2e_test
|
|
792
790
|
requires:
|
|
793
791
|
- install_deps
|
|
794
|
-
-
|
|
792
|
+
- init_aws:
|
|
795
793
|
<<: *only_on_pr_branch
|
|
796
794
|
context: <% PROJECT_NAME >-dev
|
|
797
795
|
name: init_aws_eks_pr
|
|
798
796
|
job_type: 'eks_pr'
|
|
799
797
|
requires:
|
|
800
798
|
- install_deps
|
|
801
|
-
-
|
|
799
|
+
- init_aws:
|
|
802
800
|
<<: *only_on_pr_branch
|
|
803
801
|
context: <% PROJECT_NAME >-dev
|
|
804
802
|
name: init_aws
|
|
@@ -808,7 +806,7 @@ workflows:
|
|
|
808
806
|
update_kubeconfig: false
|
|
809
807
|
requires:
|
|
810
808
|
- install_deps
|
|
811
|
-
-
|
|
809
|
+
- deploy_terraform:
|
|
812
810
|
<<: *only_on_pr_branch
|
|
813
811
|
context: <% PROJECT_NAME >-dev
|
|
814
812
|
name: deploy_terraform__<< matrix.folder >>
|
|
@@ -819,14 +817,14 @@ workflows:
|
|
|
819
817
|
apply: false
|
|
820
818
|
requires:
|
|
821
819
|
- init_aws
|
|
822
|
-
-
|
|
820
|
+
- publish_docker:
|
|
823
821
|
<<: *only_on_pr_branch
|
|
824
822
|
context: <% PROJECT_NAME >-dev
|
|
825
823
|
name: publish_docker
|
|
826
824
|
requires:
|
|
827
825
|
- install_deps
|
|
828
826
|
- init_aws
|
|
829
|
-
-
|
|
827
|
+
- upgrade_helm:
|
|
830
828
|
<<: *only_on_pr_branch
|
|
831
829
|
context: <% PROJECT_NAME >-dev
|
|
832
830
|
name: deploy_to_pr
|
|
@@ -843,13 +841,16 @@ workflows:
|
|
|
843
841
|
- deploy_to_pr
|
|
844
842
|
|
|
845
843
|
remove_pr:
|
|
844
|
+
when:
|
|
845
|
+
not:
|
|
846
|
+
equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
|
|
846
847
|
jobs:
|
|
847
|
-
-
|
|
848
|
+
- init_aws:
|
|
848
849
|
<<: *only_on_master_branch
|
|
849
850
|
context: <% PROJECT_NAME >-dev
|
|
850
851
|
name: init_aws_eks_pr
|
|
851
852
|
job_type: 'eks_pr'
|
|
852
|
-
-
|
|
853
|
+
- uninstall_helm:
|
|
853
854
|
<<: *only_on_master_branch
|
|
854
855
|
context: <% PROJECT_NAME >-dev
|
|
855
856
|
name: destroy_pr
|
|
@@ -858,32 +859,35 @@ workflows:
|
|
|
858
859
|
- init_aws_eks_pr
|
|
859
860
|
|
|
860
861
|
build_and_deploy:
|
|
862
|
+
when:
|
|
863
|
+
not:
|
|
864
|
+
equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
|
|
861
865
|
jobs:
|
|
862
|
-
-
|
|
866
|
+
- install_deps:
|
|
863
867
|
name: install_deps
|
|
864
868
|
context: <% PROJECT_NAME >-dev
|
|
865
869
|
<<: *only_on_master_branch
|
|
866
|
-
-
|
|
870
|
+
- e2e_test:
|
|
867
871
|
<<: *only_on_master_branch
|
|
868
872
|
context: <% PROJECT_NAME >-dev
|
|
869
873
|
name: e2e_test
|
|
870
874
|
requires:
|
|
871
875
|
- install_deps
|
|
872
|
-
-
|
|
876
|
+
- bump_version:
|
|
873
877
|
<<: *only_on_master_branch
|
|
874
878
|
context: <% PROJECT_NAME >-dev
|
|
875
879
|
name: bump_version
|
|
876
880
|
requires:
|
|
877
881
|
- install_deps
|
|
878
882
|
- e2e_test
|
|
879
|
-
-
|
|
883
|
+
- init_aws:
|
|
880
884
|
<<: *only_on_master_branch
|
|
881
885
|
context: <% PROJECT_NAME >-dev
|
|
882
886
|
name: init_aws_eks_dev
|
|
883
887
|
job_type: 'eks_dev'
|
|
884
888
|
requires:
|
|
885
889
|
- install_deps
|
|
886
|
-
-
|
|
890
|
+
- init_aws:
|
|
887
891
|
<<: *only_on_master_branch
|
|
888
892
|
context: <% PROJECT_NAME >-dev
|
|
889
893
|
name: init_aws
|
|
@@ -893,7 +897,7 @@ workflows:
|
|
|
893
897
|
update_kubeconfig: false
|
|
894
898
|
requires:
|
|
895
899
|
- install_deps
|
|
896
|
-
-
|
|
900
|
+
- deploy_terraform:
|
|
897
901
|
<<: *only_on_master_branch
|
|
898
902
|
context: <% PROJECT_NAME >-dev
|
|
899
903
|
name: deploy_terraform_ecr
|
|
@@ -903,7 +907,7 @@ workflows:
|
|
|
903
907
|
apply: true
|
|
904
908
|
requires:
|
|
905
909
|
- init_aws
|
|
906
|
-
-
|
|
910
|
+
- publish_docker:
|
|
907
911
|
<<: *only_on_master_branch
|
|
908
912
|
context: <% PROJECT_NAME >-dev
|
|
909
913
|
name: publish_docker
|
|
@@ -912,7 +916,7 @@ workflows:
|
|
|
912
916
|
- e2e_test
|
|
913
917
|
- init_aws
|
|
914
918
|
- deploy_terraform_ecr
|
|
915
|
-
-
|
|
919
|
+
- upgrade_helm:
|
|
916
920
|
<<: *only_on_master_branch
|
|
917
921
|
context: <% PROJECT_NAME >-dev
|
|
918
922
|
name: deploy_to_dev
|
|
@@ -922,7 +926,7 @@ workflows:
|
|
|
922
926
|
requires:
|
|
923
927
|
- init_aws_eks_dev
|
|
924
928
|
- publish_docker
|
|
925
|
-
-
|
|
929
|
+
- deploy_terraform:
|
|
926
930
|
<<: *only_on_master_branch
|
|
927
931
|
context: <% PROJECT_NAME >-dev
|
|
928
932
|
name: deploy_terraform_newrelic_dev
|
|
@@ -937,7 +941,7 @@ workflows:
|
|
|
937
941
|
type: approval
|
|
938
942
|
requires:
|
|
939
943
|
- deploy_to_dev
|
|
940
|
-
-
|
|
944
|
+
- init_aws:
|
|
941
945
|
<<: *only_on_master_branch
|
|
942
946
|
context: <% PROJECT_NAME >-dev
|
|
943
947
|
name: init_aws_staging
|
|
@@ -947,21 +951,21 @@ workflows:
|
|
|
947
951
|
update_kubeconfig: false
|
|
948
952
|
requires:
|
|
949
953
|
- approve_deploy_to_staging
|
|
950
|
-
-
|
|
954
|
+
- init_aws:
|
|
951
955
|
<<: *only_on_master_branch
|
|
952
956
|
name: init_aws_eks_staging
|
|
953
957
|
context: <% PROJECT_NAME >-stage
|
|
954
958
|
job_type: 'eks_staging'
|
|
955
959
|
requires:
|
|
956
960
|
- init_aws_staging
|
|
957
|
-
-
|
|
961
|
+
- upgrade_helm:
|
|
958
962
|
<<: *only_on_master_branch
|
|
959
963
|
name: deploy_to_staging
|
|
960
964
|
context: <% PROJECT_NAME >-stage
|
|
961
965
|
environment: staging
|
|
962
966
|
requires:
|
|
963
967
|
- init_aws_eks_staging
|
|
964
|
-
-
|
|
968
|
+
- deploy_terraform:
|
|
965
969
|
<<: *only_on_master_branch
|
|
966
970
|
context: <% PROJECT_NAME >-stage
|
|
967
971
|
name: deploy_terraform_newrelic_staging
|
|
@@ -976,7 +980,7 @@ workflows:
|
|
|
976
980
|
type: approval
|
|
977
981
|
requires:
|
|
978
982
|
- deploy_to_staging
|
|
979
|
-
-
|
|
983
|
+
- init_aws:
|
|
980
984
|
<<: *only_on_master_branch
|
|
981
985
|
context: <% PROJECT_NAME >-dev
|
|
982
986
|
name: init_aws_prod
|
|
@@ -986,28 +990,28 @@ workflows:
|
|
|
986
990
|
update_kubeconfig: false
|
|
987
991
|
requires:
|
|
988
992
|
- approve_deploy_to_prod
|
|
989
|
-
-
|
|
993
|
+
- create_release:
|
|
990
994
|
<<: *only_on_master_branch
|
|
991
995
|
name: create_release
|
|
992
996
|
context: <% PROJECT_NAME >-prod
|
|
993
997
|
requires:
|
|
994
998
|
- bump_version
|
|
995
999
|
- approve_deploy_to_prod
|
|
996
|
-
-
|
|
1000
|
+
- init_aws:
|
|
997
1001
|
<<: *only_on_master_branch
|
|
998
1002
|
name: init_aws_eks_prod
|
|
999
1003
|
context: <% PROJECT_NAME >-prod
|
|
1000
1004
|
job_type: 'eks_prod'
|
|
1001
1005
|
requires:
|
|
1002
1006
|
- init_aws_prod
|
|
1003
|
-
-
|
|
1007
|
+
- upgrade_helm:
|
|
1004
1008
|
<<: *only_on_master_branch
|
|
1005
1009
|
name: deploy_to_prod
|
|
1006
1010
|
context: <% PROJECT_NAME >-prod
|
|
1007
1011
|
environment: prod
|
|
1008
1012
|
requires:
|
|
1009
1013
|
- init_aws_eks_prod
|
|
1010
|
-
-
|
|
1014
|
+
- deploy_terraform:
|
|
1011
1015
|
<<: *only_on_master_branch
|
|
1012
1016
|
context: <% PROJECT_NAME >-prod
|
|
1013
1017
|
name: deploy_terraform_newrelic_prod
|
|
@@ -1017,25 +1021,27 @@ workflows:
|
|
|
1017
1021
|
apply: true
|
|
1018
1022
|
requires:
|
|
1019
1023
|
- deploy_to_prod
|
|
1020
|
-
-
|
|
1024
|
+
- promote_release:
|
|
1021
1025
|
<<: *only_on_master_branch
|
|
1022
1026
|
name: promote_release
|
|
1023
1027
|
context: <% PROJECT_NAME >-prod
|
|
1024
1028
|
requires:
|
|
1025
1029
|
- deploy_to_prod
|
|
1026
1030
|
|
|
1031
|
+
# You must go to project setting > triggers and add a trigger call remove_old_environments
|
|
1032
|
+
# in CircleCi. This should be set to be triggered at midnight or around that time.
|
|
1027
1033
|
remove_old_environments:
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1034
|
+
when:
|
|
1035
|
+
and:
|
|
1036
|
+
- equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
|
|
1037
|
+
- equal: [ "remove_old_environments", << pipeline.schedule.name >> ]
|
|
1032
1038
|
jobs:
|
|
1033
|
-
-
|
|
1039
|
+
- init_aws:
|
|
1034
1040
|
<<: *only_on_master_branch
|
|
1035
1041
|
context: <% PROJECT_NAME >-dev
|
|
1036
1042
|
name: init_aws_eks_pr
|
|
1037
1043
|
job_type: 'eks_pr'
|
|
1038
|
-
-
|
|
1044
|
+
- remove_all_pr_environments:
|
|
1039
1045
|
<<: *only_on_master_branch
|
|
1040
1046
|
context: <% PROJECT_NAME >-dev
|
|
1041
1047
|
requires:
|