@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.
@@ -1,743 +1,741 @@
1
1
  version: 2.1
2
2
 
3
3
  orbs:
4
- newskit:
5
- orbs:
6
- slack: circleci/slack@3.4.2
7
- browser-tools: circleci/browser-tools@1.3.0
8
- executors:
9
- helm:
10
- docker:
11
- - image: nukengprodservice/helm:0.1.102
12
- auth:
13
- username: ${DOCKER_USERNAME}
14
- password: ${DOCKER_PASSWORD}
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
- node:
18
- docker:
19
- - image: cimg/node:16.13.0-browsers
20
- auth:
21
- username: ${DOCKER_USERNAME}
22
- password: ${DOCKER_PASSWORD}
23
- resource_class: xlarge
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
- terraform:
26
- docker:
27
- - image: hashicorp/terraform:0.14.2
28
- auth:
29
- username: ${DOCKER_USERNAME}
30
- password: ${DOCKER_PASSWORD}
31
- resource_class: xlarge
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
- commands:
34
- aws_assume_role:
35
- description: Assume AWS role
36
- parameters:
37
- aws_access_key_id:
38
- description: AWS Access Key Id
39
- type: string
40
- default: '${AWS_ACCESS_KEY_ID}'
41
- aws_secret_key:
42
- description: AWS Secret Key
43
- type: string
44
- default: '${AWS_SECRET_ACCESS_KEY}'
45
- aws_assume_role_arn:
46
- description: AWS ARN For Assume Role
47
- type: string
48
- default: '${AWS_ASSUME_ROLE_ARN}'
49
- aws_region:
50
- description: AWS region
51
- type: string
52
- default: 'eu-west-1'
53
- job_type:
54
- description: The job type to be used
55
- type: string
56
- default: 'default'
57
- eks_cluster:
58
- description: EKS cluster for kubeconfig
59
- type: string
60
- default: '${AWS_EKS_CLUSTER}'
61
- update_kubeconfig:
62
- description: Whether to create a kubeconfig
63
- type: boolean
64
- default: false
65
- steps:
66
- - run:
67
- name: Assume AWS role
68
- command: |
69
- export AWS_ACCESS_KEY_ID=<< parameters.aws_access_key_id >>
70
- export AWS_SECRET_ACCESS_KEY=<< parameters.aws_secret_key >>
71
- export temp_role=$(aws sts assume-role \
72
- --role-arn "<< parameters.aws_assume_role_arn >>" \
73
- --role-session-name "circle-ci-assume")
74
- export AWS_ACCESS_KEY_ID_TEMP=$(echo $temp_role | jq .Credentials.AccessKeyId | xargs)
75
- export AWS_SECRET_ACCESS_KEY_TEMP=$(echo $temp_role | jq .Credentials.SecretAccessKey | xargs)
76
- export AWS_SESSION_TOKEN_TEMP=$(echo $temp_role | jq .Credentials.SessionToken | xargs)
77
- echo "export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID_TEMP" >> $BASH_ENV
78
- echo "export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY_TEMP" >> $BASH_ENV
79
- echo "export AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN_TEMP" >> $BASH_ENV
80
- source $BASH_ENV
81
- cat $BASH_ENV | grep AWS_ACCESS_KEY_ID >> assume_role_creds_<< parameters.job_type >>.txt
82
- cat $BASH_ENV | grep AWS_SECRET_ACCESS_KEY >> assume_role_creds_<< parameters.job_type >>.txt
83
- cat $BASH_ENV | grep AWS_SESSION_TOKEN >> assume_role_creds_<< parameters.job_type >>.txt
84
- - when:
85
- condition: << parameters.update_kubeconfig >>
86
- steps:
87
- - run:
88
- name: Update kubeconfig clustername
89
- command: aws --region << parameters.aws_region >> eks update-kubeconfig --name << parameters.eks_cluster >>
90
- - run:
91
- name: Update kubectl credentials
92
- command: cp ~/.kube/config kube_<< parameters.job_type >>.config
93
- - persist_to_workspace:
94
- root: ./
95
- paths:
96
- - assume_role_creds_<< parameters.job_type >>.txt
97
- - kube_<< parameters.job_type >>.config
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
- aws_assume_role_file:
100
- description: Assume AWS role from the workspace file
101
- parameters:
102
- job_type:
103
- description: The job type to be used
104
- type: string
105
- default: 'default'
106
- steps:
107
- - run:
108
- name: Assume role from file
109
- command: |
110
- cat assume_role_creds_<< parameters.job_type >>.txt >> $BASH_ENV
111
- source $BASH_ENV
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
- terraform_init:
114
- description: Run Terraform Init
115
- parameters:
116
- path:
117
- type: string
118
- terraform_arg:
119
- description: provide terraform arguments
120
- type: string
121
- default: ''
122
- steps:
123
- - run:
124
- name: Terraform init
125
- command: |
126
- source $BASH_ENV
127
- cd << parameters.path >>
128
- terraform init << parameters.terraform_arg >>
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
- terraform_plan:
131
- description: Run Terraform Plan
132
- parameters:
133
- path:
134
- type: string
135
- terraform_arg:
136
- description: provide terraform arguments
137
- type: string
138
- default: ''
139
- steps:
140
- - run:
141
- name: Terraform plan
142
- command: |
143
- source $BASH_ENV
144
- cd << parameters.path >>
145
- terraform plan -out=tfplan -input=false << parameters.terraform_arg >>
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
- terraform_apply:
148
- description: Run Terraform Apply
149
- parameters:
150
- path:
151
- type: string
152
- steps:
153
- - run:
154
- name: Terraform apply
155
- command: |
156
- source $BASH_ENV
157
- cd << parameters.path >>
158
- terraform apply -input=false tfplan
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
- terraform_force_apply:
161
- description: Run Terraform Apply
162
- parameters:
163
- path:
164
- type: string
165
- steps:
166
- - run:
167
- name: Terraform forced apply
168
- command: |
169
- source $BASH_ENV
170
- cd << parameters.path >>
171
- terraform apply -auto-approve
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
- git_config_user:
174
- description: Configure git user
175
- parameters:
176
- user:
177
- type: string
178
- default: ${GIT_USERNAME}
179
- email:
180
- type: string
181
- default: '${GIT_EMAIL}'
182
- steps:
183
- - run:
184
- name: Configure git user
185
- command: |
186
- git config --global user.email "<< parameters.email >>"
187
- git config --global user.name "<< parameters.user >>"
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
- # This job relies on working with Pull Requests
190
- set_helm_environment:
191
- description: 'Set environment variables for helm'
192
- parameters:
193
- environment:
194
- type: string
195
- release:
196
- description: Helm release name i.e ncu-newskit-render
197
- type: string
198
- default: <% HELM_RELEASE_NAME >
199
- namespace:
200
- description: Kubernetes namespace
201
- type: string
202
- node_env:
203
- description: Node environment name
204
- type: string
205
- default: production
206
- steps:
207
- - run:
208
- name: 'Set environment variables for helm'
209
- command: |
210
- export PKG_VERSION=$(jq -r .version package.json)
211
- echo "export PKG_VERSION=$PKG_VERSION" >> $BASH_ENV
212
- echo 'export KUBECONFIG=$(pwd)/kube_eks_<< parameters.environment >>.config' >> $BASH_ENV
213
- echo 'export HELM_OPT_NAMESPACE="-n << parameters.namespace >>"' >> $BASH_ENV
214
- echo 'export HELM_VAL_ENV=<< parameters.environment >>' >> $BASH_ENV
215
- echo 'export NODE_ENV=<< parameters.node_env >>' >> $BASH_ENV
216
- if [ -n "$CIRCLE_PULL_REQUEST" ]; then
217
- export PR_NUMBER=$(echo ${CIRCLE_PULL_REQUEST} |rev | cut -d "/" -f1 |rev)
218
- echo "export PR_NUMBER=$PR_NUMBER" >> $BASH_ENV
219
- echo 'export HELM_OPT_SET="--set alb.prSuffix=pr-$PR_NUMBER"' >> $BASH_ENV
220
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set image.tag=PR-$PR_NUMBER "' >> $BASH_ENV
221
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.NEWSKIT_API_X_API_KEY=${NEWSKIT_API_X_API_KEY}"' >> $BASH_ENV
222
- echo 'export HELM_NAME="<< parameters.release >>-pr$PR_NUMBER"' >> $BASH_ENV
223
- else
224
- export PR_NUMBER=$(git log --format=%B -n 1 HEAD | grep -oE -m 1 '\(#[0-9]+\)' | grep -oE '[0-9]+')
225
- echo "export PR_NUMBER=$PR_NUMBER" >> $BASH_ENV
226
- echo 'export HELM_OPT_SET="--set image.tag=$PKG_VERSION "' >> $BASH_ENV
227
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.NEWSKIT_API_X_API_KEY=${NEWSKIT_API_X_API_KEY}"' >> $BASH_ENV
228
- if [ "<< parameters.environment >>" = pr ]; then
229
- echo 'export HELM_NAME="<< parameters.release >>-pr$PR_NUMBER"' >> $BASH_ENV
230
- else
231
- echo 'export HELM_NAME="<< parameters.release >>"' >> $BASH_ENV
232
- fi
233
- fi
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
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set envs.SOURCEPOINT_ACCOUNT_ID=${SOURCEPOINT_ACCOUNT_ID}"' >> $BASH_ENV
236
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set envs.SOURCEPOINT_PROPERTY_HREF=${SOURCEPOINT_PROPERTY_HREF}"' >> $BASH_ENV
237
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set envs.EXPERIMENTATION_WEB=${EXPERIMENTATION_WEB}"' >> $BASH_ENV
238
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set envs.TEALIUM_ACCOUNT_ID=${TEALIUM_ACCOUNT_ID}"' >> $BASH_ENV
239
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set envs.TEALIUM_PROFILE_ID=${TEALIUM_PROFILE_ID}"' >> $BASH_ENV
240
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set envs.TEALIUM_ENV=${TEALIUM_ENV}"' >> $BASH_ENV
241
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.NEW_RELIC_LICENSE_KEY=${NEW_RELIC_LICENSE_KEY}"' >> $BASH_ENV
242
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.MAIN_GRAPHQL_URL=${MAIN_GRAPHQL_URL}"' >> $BASH_ENV
243
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.MAIN_COOKIE_NAME=${MAIN_COOKIE_NAME}"' >> $BASH_ENV
244
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.MAIN_AUDIENCE=${MAIN_AUDIENCE}"' >> $BASH_ENV
245
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.MAIN_OAUTH_TOKEN=${MAIN_OAUTH_TOKEN}"' >> $BASH_ENV
246
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.MAIN_CLIENT_ID=${MAIN_CLIENT_ID}"' >> $BASH_ENV
247
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.MAIN_CLIENT_SECRET=${MAIN_CLIENT_SECRET}"' >> $BASH_ENV
248
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.MAIN_INTERNAL_AUTH0_DOMAIN=${MAIN_INTERNAL_AUTH0_DOMAIN}"' >> $BASH_ENV
249
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.MAIN_INTERNAL_CONNECTION=${MAIN_INTERNAL_CONNECTION}"' >> $BASH_ENV
250
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.MAIN_INTERNAL_CLIENT_ID=${MAIN_INTERNAL_CLIENT_ID}"' >> $BASH_ENV
251
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.STRIPE_KEY=${STRIPE_KEY}"' >> $BASH_ENV
252
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.LOQACCOUNT_KEY=${LOQACCOUNT_KEY}"' >> $BASH_ENV
253
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.SAILTHRU_API_SECRET=${SAILTHRU_API_SECRET}"' >> $BASH_ENV
254
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.SAILTHRU_DOMAIN=${SAILTHRU_DOMAIN}"' >> $BASH_ENV
255
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.OKTA_CLIENT_ID=${OKTA_CLIENT_ID}"' >> $BASH_ENV
256
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.OKTA_CLIENT_SECRET=${OKTA_CLIENT_SECRET}"' >> $BASH_ENV
257
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.OKTA_DOMAIN=${OKTA_DOMAIN}"' >> $BASH_ENV
258
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.NEXTAUTH_URL=${NEXTAUTH_URL}"' >> $BASH_ENV
259
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.NEXTAUTH_SECRET=${NEXTAUTH_SECRET}"' >> $BASH_ENV
260
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.SN_PASSWORD=${SN_PASSWORD}"' >> $BASH_ENV
261
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.SN_USERNAME=${SN_USERNAME}"' >> $BASH_ENV
262
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.SN_ENVIRONMENT=${SN_ENVIRONMENT}"' >> $BASH_ENV
263
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.ZUORA_PAGE_ID=${ZUORA_PAGE_ID}"' >> $BASH_ENV
264
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.ZUORA_RSA_SIGNATURE_URI=${ZUORA_RSA_SIGNATURE_URI}"' >> $BASH_ENV
265
- echo 'export HELM_OPT_SET="$HELM_OPT_SET --set secret.items.OPTIMIZELY_SDK_KEY=${OPTIMIZELY_SDK_KEY}"' >> $BASH_ENV
266
- echo 'export HELM_PATH="helm"' >> $BASH_ENV
267
- echo 'export HELM_VALUES="--values $HELM_PATH/values-$HELM_VAL_ENV.yaml"' >> $BASH_ENV
268
- echo 'export HELM_INSTALL="helm install --atomic $HELM_VALUES $HELM_OPT_SET $HELM_OPT_NAMESPACE"' >> $BASH_ENV
269
- echo 'export HELM_UNINSTALL="helm uninstall $HELM_OPT_NAMESPACE"' >> $BASH_ENV
270
- echo 'export HELM_LIST="helm list $HELM_OPT_NAMESPACE"' >> $BASH_ENV
271
- echo 'export HELM_LIST_ALL="$HELM_LIST --all --short"' >> $BASH_ENV
272
- echo 'export HELM_UPGRADE="helm upgrade --atomic $HELM_VALUES $HELM_OPT_SET $HELM_OPT_NAMESPACE"' >> $BASH_ENV
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
- jobs:
275
- init_aws:
276
- parameters:
277
- aws_access_key_id:
278
- description: AWS Access Key Id
279
- type: string
280
- default: '${AWS_ACCESS_KEY_ID}'
281
- aws_secret_key:
282
- description: AWS Secret Key
283
- type: string
284
- default: '${AWS_SECRET_ACCESS_KEY}'
285
- aws_assume_role_arn:
286
- description: AWS ARN For Assume Role
287
- type: string
288
- default: '${AWS_ASSUME_ROLE_ARN}'
289
- job_type:
290
- type: string
291
- default: 'default'
292
- update_kubeconfig:
293
- type: boolean
294
- default: true
295
- working_directory: ~/project
296
- executor: helm
297
- steps:
298
- - run:
299
- name: Install openssh client
300
- command: apk add openssh-client
301
- - checkout
302
- - aws_assume_role:
303
- aws_access_key_id: << parameters.aws_access_key_id >>
304
- aws_secret_key: << parameters.aws_secret_key >>
305
- aws_assume_role_arn: << parameters.aws_assume_role_arn >>
306
- job_type: << parameters.job_type >>
307
- update_kubeconfig: << parameters.update_kubeconfig >>
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
- deploy_terraform:
310
- parameters:
311
- team:
312
- description: Used to generate the S3 bucket key i.e. product-platforms
313
- type: string
314
- default: <% TEAM >
315
- project:
316
- description: Used to generate the S3 bucket key i.e. ncu-newskit-render
317
- type: string
318
- folder:
319
- description: Used to generate the S3 bucket key and navigate to terraform folder i.e. infrastructure-ecr
320
- type: string
321
- environment:
322
- type: string
323
- default: dev
324
- apply:
325
- type: boolean
326
- default: false
327
- working_directory: ~/project
328
- executor: terraform
329
- steps:
330
- - checkout
331
- - attach_workspace:
332
- at: ~/project
333
- - aws_assume_role_file
334
- - terraform_init:
335
- path: << parameters.folder >>
336
- terraform_arg: -backend-config="key=<<parameters.team >>/<< parameters.project >>/<< parameters.folder >>/<< parameters.environment >>/terraform.tfstate"
337
- - terraform_plan:
338
- path: << parameters.folder >>
339
- terraform_arg: -var-file=<< parameters.environment >>.tfvars
340
- - when:
341
- condition: << parameters.apply >>
342
- steps:
343
- - terraform_apply:
344
- path: << parameters.folder >>
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
- install_deps:
347
- working_directory: ~/project
348
- executor: node
349
- steps:
350
- - checkout
351
- - restore_cache:
352
- keys:
353
- - <% PACKAGE_MANAGER >-build-{{ .Environment.BUILD_CACHE_VERSION }}-{{ checksum "<% PACKAGE_MANAGER_LOCK_FILE >" }}
354
- - <% PACKAGE_MANAGER >-build-{{ .Environment.BUILD_CACHE_VERSION }}-
355
- - restore_cache:
356
- keys:
357
- - cypress-{{ .Environment.CYPRESS_CACHE_VERSION }}-{{ checksum "<% PACKAGE_MANAGER_LOCK_FILE >" }}
358
- - run:
359
- name: 'Install dependencies'
360
- command: <% PACKAGE_INSTALL >
361
- - run:
362
- name: 'Build the project'
363
- command: <% PACKAGE_RUN > build
364
- - save_cache:
365
- key: <% PACKAGE_MANAGER >-build-{{ .Environment.BUILD_CACHE_VERSION }}-{{ checksum "<% PACKAGE_MANAGER_LOCK_FILE >" }}
366
- paths:
367
- - ~/.cache/yarn
368
- - ~/.npm
369
- - node_modules
370
- - .next/cache
371
- - save_cache:
372
- key: cypress-{{ .Environment.CYPRESS_CACHE_VERSION }}-{{ checksum "<% PACKAGE_MANAGER_LOCK_FILE >" }}
373
- paths:
374
- - ~/.cache/Cypress
375
- - persist_to_workspace:
376
- root: ./
377
- paths: .next
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
- lint:
380
- executor: node
381
- steps:
382
- - checkout
383
- - attach_workspace:
384
- at: ~/project
385
- - restore_cache:
386
- keys:
387
- - <% PACKAGE_MANAGER >-build-{{ .Environment.BUILD_CACHE_VERSION }}-{{ checksum "<% PACKAGE_MANAGER_LOCK_FILE >" }}
388
- - run:
389
- name: "Run lint"
390
- command: <% PACKAGE_RUN > lint
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
- test_unit:
393
- executor: node
394
- steps:
395
- - checkout
396
- - attach_workspace:
397
- at: ~/project
398
- - restore_cache:
399
- keys:
400
- - <% PACKAGE_MANAGER >-build-{{ .Environment.BUILD_CACHE_VERSION }}-{{ checksum "<% PACKAGE_MANAGER_LOCK_FILE >" }}
401
- - run:
402
- name: 'Run tests'
403
- command: |
404
- mkdir tests
405
- <% PACKAGE_RUN > test:unit:ci
406
- environment:
407
- JEST_JUNIT_OUTPUT_DIR: /home/circleci/project/tests
408
- - store_test_results:
409
- path: tests
410
- - store_artifacts:
411
- path: tests
412
- destination: tests
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
- e2e_test:
415
- executor: node
416
- steps:
417
- - checkout
418
- - attach_workspace:
419
- at: ~/project
420
- - restore_cache:
421
- keys:
422
- - <% PACKAGE_MANAGER >-build-{{ .Environment.BUILD_CACHE_VERSION }}-{{ checksum "<% PACKAGE_MANAGER_LOCK_FILE >" }}
423
- - restore_cache:
424
- keys:
425
- - cypress-{{ .Environment.CYPRESS_CACHE_VERSION }}-{{ checksum "<% PACKAGE_MANAGER_LOCK_FILE >" }}
426
- - run:
427
- name: 'Export Newskit API variables'
428
- command: |
429
- echo "export NEWSKIT_API_X_API_KEY=$NEWSKIT_API_X_API_KEY" >> $BASH_ENV
430
- echo "export NEWSKIT_API_ENV_URL=$NEWSKIT_API_ENV_URL" >> $BASH_ENV
431
- - run:
432
- name: 'install cypress dependencies'
433
- command: |
434
- sudo apt-get update
435
- sudo apt-get install libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb
436
- - browser-tools/install-chrome
437
- - browser-tools/install-chromedriver
438
- - run:
439
- name: Check chrome install
440
- command: |
441
- google-chrome --version
442
- chromedriver --version
443
- - run:
444
- name: 'start server'
445
- command: |
446
- yarn start:test:server
447
- background: true
448
- - run:
449
- name: 'Wait test server'
450
- command: |
451
- yarn wait:server
452
- - run:
453
- name: 'Run e2e tests'
454
- command: |
455
- <% PACKAGE_RUN > test:e2e
456
- - store_artifacts:
457
- path: cypress/screenshots
458
- - store_artifacts:
459
- path: cypress/videos
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
- publish_docker:
462
- parameters:
463
- project:
464
- description: Project name that will be used to tag docker images i.e ncu-newskit-render
465
- type: string
466
- default: <% PROJECT_NAME >
467
- working_directory: ~/project
468
- executor: node
469
- steps:
470
- - checkout
471
- - attach_workspace:
472
- at: ~/project
473
- - restore_cache:
474
- keys:
475
- - <% PACKAGE_MANAGER >-build-{{ .Environment.BUILD_CACHE_VERSION }}-{{ checksum "<% PACKAGE_MANAGER_LOCK_FILE >" }}
476
- - setup_remote_docker
477
- - run:
478
- name: Install aws cli
479
- command: |
480
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
481
- sudo apt-get update
482
- sudo apt-get install python python3-pip
483
- sudo pip install awscli
484
- - aws_assume_role_file
485
- - run:
486
- name: Publish Docker containers to AWS ECR
487
- command: |
488
- if [ -n "$CIRCLE_PULL_REQUEST" ]; then
489
- export PR_NUMBER=$(echo ${CIRCLE_PULL_REQUEST} |rev | cut -d "/" -f1 |rev)
490
- TAGS="PR-$PR_NUMBER"
491
- else
492
- TAG_VERSION=$(jq -r .version package.json)
493
- TAGS="$TAG_VERSION latest"
494
- fi
495
- DOCKER_REGISTRY_URL="$AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com"
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
- npm prune --production
496
+ npm prune --production
498
497
 
499
- echo $DOCKER_PASSWORD | docker login -u $DOCKER_USERNAME --password-stdin
500
- docker build -t << parameters.project >> .
501
- $(aws ecr get-login --no-include-email)
502
- for tag in $TAGS; do
503
- docker tag << parameters.project >> $DOCKER_REGISTRY_URL/<< parameters.project >>:$tag;
504
- docker push $DOCKER_REGISTRY_URL/<< parameters.project >>:$tag;
505
- done
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
- uninstall_helm:
508
- parameters:
509
- environment:
510
- description: Environment name
511
- type: string
512
- release:
513
- description: Helm release name i.e ncu-newskit-render
514
- type: string
515
- default: <% HELM_RELEASE_NAME >
516
- namespace:
517
- description: Kubernetes namespace without environment suffix
518
- type: string
519
- default: <% K8S_NAMESPACE >
520
- working_directory: ~/project
521
- executor: helm
522
- steps:
523
- - run:
524
- name: Install ssh client
525
- command: apk add openssh-client
526
- - checkout
527
- - attach_workspace:
528
- at: ~/project
529
- - aws_assume_role_file:
530
- job_type: eks_<< parameters.environment >>
531
- - set_helm_environment:
532
- environment: << parameters.environment >>
533
- release: << parameters.release >>
534
- namespace: << parameters.namespace>>-<< parameters.environment >>
535
- - run:
536
- name: Helm uninstall
537
- command: |
538
- source $BASH_ENV
539
- if $HELM_LIST | grep -q $HELM_NAME; then $HELM_UNINSTALL $HELM_NAME; fi
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
- remove_all_pr_environments:
542
- parameters:
543
- namespace:
544
- description: Kubernetes namespace without environment suffix
545
- type: string
546
- default: <% K8S_NAMESPACE >
547
- working_directory: ~/project
548
- executor: helm
549
- steps:
550
- - run:
551
- name: Install ssh client
552
- command: apk add openssh-client
553
- - checkout
554
- - attach_workspace:
555
- at: ~/project
556
- - aws_assume_role_file:
557
- job_type: eks_pr
558
- - set_helm_environment:
559
- environment: pr
560
- namespace: << parameters.namespace>>-pr
561
- - run:
562
- name: Remove all PR environments
563
- command: |
564
- source $BASH_ENV
565
- if [ -n "$($HELM_LIST_ALL)" ]; then $HELM_LIST_ALL | xargs $HELM_UNINSTALL; fi
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
- upgrade_helm:
568
- parameters:
569
- environment:
570
- description: Environment name
571
- type: string
572
- node_env:
573
- description: Node environment name
574
- type: string
575
- default: production
576
- create:
577
- description: Whether to create a new Helm package
578
- type: boolean
579
- default: false
580
- release:
581
- description: Helm release name i.e ncu-newskit-render
582
- type: string
583
- default: <% HELM_RELEASE_NAME >
584
- helm_repo:
585
- description: Helm S3 repo url
586
- type: string
587
- default: s3://<% HELM_BUCKET_NAME >
588
- namespace:
589
- description: Kubernetes namespace without environment suffix
590
- type: string
591
- default: <% K8S_NAMESPACE >
592
- working_directory: ~/project
593
- executor: helm
594
- steps:
595
- - run:
596
- name: Install ssh client
597
- command: apk add openssh-client
598
- - checkout
599
- - attach_workspace:
600
- at: ~/project
601
- - set_helm_environment:
602
- environment: << parameters.environment >>
603
- node_env: << parameters.node_env >>
604
- release: << parameters.release >>
605
- namespace: << parameters.namespace >>-<< parameters.environment >>
606
- - run:
607
- name: Install helm s3 plugin
608
- command: helm plugin install https://github.com/hypnoglow/helm-s3.git
609
- - aws_assume_role_file
610
- - when:
611
- condition: << parameters.create >>
612
- steps:
613
- - run:
614
- name: Helm package and upload
615
- command: |
616
- source $BASH_ENV
617
- if ! aws s3 ls << parameters.helm_repo >>/<< parameters.release >>/ | grep index.yaml; then
618
- helm s3 init << parameters.helm_repo >>/<< parameters.release >>
619
- else
620
- echo "Repo already initialized";
621
- fi
622
- helm repo add << parameters.release >> << parameters.helm_repo >>/<< parameters.release >>
623
- helm package -u --version $PKG_VERSION --app-version $PKG_VERSION $HELM_PATH;
624
- mv << parameters.release >>-*.tgz << parameters.release >>-$PKG_VERSION.tgz;
625
- if [ "$HELM_VAL_ENV" != "pr" ]; then
626
- helm s3 push --force ./<< parameters.release >>-$PKG_VERSION.tgz << parameters.release >>;
627
- fi
628
- - unless:
629
- condition: << parameters.create >>
630
- steps:
631
- - run:
632
- name: Download helm chart
633
- command: |
634
- source $BASH_ENV
635
- helm repo add << parameters.release >> << parameters.helm_repo >>/<< parameters.release >>
636
- helm pull << parameters.release >>/<< parameters.release >> --version $PKG_VERSION;
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
- - aws_assume_role_file:
639
- job_type: eks_<< parameters.environment >>
640
- - run:
641
- name: Helm deploy
642
- command: |
643
- source $BASH_ENV
644
- $HELM_UPGRADE --install $HELM_NAME << parameters.release >>-*.tgz --version $PKG_VERSION
645
- - when:
646
- condition:
647
- and:
648
- - not:
649
- equal: [pr, << parameters.environment >>]
650
- steps:
651
- - run:
652
- name: Add Deployment Marker to New Relic
653
- command: |
654
- CURRENT_VERSION=$(jq -r .version ./package.json)
655
- 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')
656
- 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'" } }'
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
- create_release:
659
- executor: helm
660
- working_directory: ~/project
661
- steps:
662
- - run:
663
- name: Install ssh client and npm
664
- command: apk add openssh-client npm
665
- - add_ssh_keys:
666
- fingerprints:
667
- - '<% SSH_KEY >'
668
- - checkout
669
- - attach_workspace:
670
- at: ~/project
671
- - aws_assume_role:
672
- aws_access_key_id: ${RELEASE_AWS_ACCESS_KEY_ID}
673
- aws_secret_key: ${RELEASE_AWS_SECRET_ACCESS_KEY}
674
- aws_assume_role_arn: ${BOOK_RELEASE_ROLE_ARN}
675
- job_type: release
676
- - run:
677
- name: Create release request
678
- command: |
679
- source $BASH_ENV
680
- CURRENT_VERSION=$(jq -r .version ./package.json)
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
- npm install --no-save release-documentation-cli@5.2.4
681
+ npm install --no-save release-documentation-cli@5.2.4
683
682
 
684
- # If your tags are prefixed (i.e. lerna) check the --tagFilter parameter
685
- echo "Creating a release request for $CURRENT_VERSION to be deployed to production."
686
- # 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)
687
- # Useful when first setting up booking releases
688
- # Remove when all config is validated
689
- $(npm bin)/release new --isDebug --productOwner "$PRODUCT_OWNER" --runOnCi --bookRelease
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
- promote_release:
692
- executor: node
693
- working_directory: ~/project
694
- steps:
695
- - add_ssh_keys:
696
- fingerprints:
697
- - '<% SSH_KEY >'
698
- - checkout
699
- - attach_workspace:
700
- at: ~/project
701
- - run:
702
- name: Promote release
703
- command: |
704
- export CURRENT_VERSION=$(jq -r .version ./package.json)
705
- echo "export CURRENT_VERSION=$CURRENT_VERSION" >> $BASH_ENV
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
- npm install --no-save release-documentation-cli@5.2.4
706
+ npm install --no-save release-documentation-cli@5.2.4
708
707
 
709
- # If your tags are prefixed (i.e. lerna) check the --tagFilter parameter
710
- $(npm bin)/release promote
711
- echo "$CURRENT_VERSION published to npm"
712
- - slack/notify:
713
- color: '#42e2f4'
714
- message: "Hi all, \n <% PROJECT_NAME > version <% GIT_REPO >/releases/tag/${CURRENT_VERSION} has been released."
715
- webhook: ${SLACK_RELEASES_WEBHOOK}
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
- bump_version:
718
- executor: node
719
- working_directory: ~/project
720
- steps:
721
- - add_ssh_keys:
722
- fingerprints:
723
- - '<% SSH_KEY >'
724
- - checkout
725
- - attach_workspace:
726
- at: ~/project
727
- - git_config_user
728
- - run:
729
- name: Run standard-version
730
- command: |
731
- npx standard-version --releaseCommitMessageFormat='chore(release): {{currentTag}} [ci skip]'
732
- git push --follow-tags origin master
733
- - persist_to_workspace:
734
- root: ./
735
- paths:
736
- - package.json
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: newskit/node
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
- - newskit/install_deps:
782
+ - install_deps:
785
783
  name: install_deps
786
784
  context: <% PROJECT_NAME >-dev
787
785
  <<: *only_on_pr_branch
788
- - newskit/e2e_test:
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
- - newskit/init_aws:
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
- - newskit/init_aws:
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
- - newskit/deploy_terraform:
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
- - newskit/publish_docker:
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
- - newskit/upgrade_helm:
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
- - newskit/init_aws:
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
- - newskit/uninstall_helm:
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
- - newskit/install_deps:
866
+ - install_deps:
863
867
  name: install_deps
864
868
  context: <% PROJECT_NAME >-dev
865
869
  <<: *only_on_master_branch
866
- - newskit/e2e_test:
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
- - newskit/bump_version:
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
- - newskit/init_aws:
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
- - newskit/init_aws:
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
- - newskit/deploy_terraform:
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
- - newskit/publish_docker:
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
- - newskit/upgrade_helm:
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
- - newskit/deploy_terraform:
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
- - newskit/init_aws:
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
- - newskit/init_aws:
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
- - newskit/upgrade_helm:
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
- - newskit/deploy_terraform:
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
- - newskit/init_aws:
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
- - newskit/create_release:
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
- - newskit/init_aws:
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
- - newskit/upgrade_helm:
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
- - newskit/deploy_terraform:
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
- - newskit/promote_release:
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
- triggers:
1029
- - schedule:
1030
- cron: '0 0 * * *'
1031
- <<: *only_on_master_branch
1034
+ when:
1035
+ and:
1036
+ - equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
1037
+ - equal: [ "remove_old_environments", << pipeline.schedule.name >> ]
1032
1038
  jobs:
1033
- - newskit/init_aws:
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
- - newskit/remove_all_pr_environments:
1044
+ - remove_all_pr_environments:
1039
1045
  <<: *only_on_master_branch
1040
1046
  context: <% PROJECT_NAME >-dev
1041
1047
  requires: