Skip to content

Commit 847a879

Browse files
authored
chore: Run smoke tests in pre-prod before publishing (#416)
1 parent 9c31354 commit 847a879

File tree

2 files changed

+87
-63
lines changed

2 files changed

+87
-63
lines changed
Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# App monitor details
1+
# App monitor details
22
MONITOR_ID=$1
33
REGION=$2
44
GUEST_ARN=$3
@@ -7,17 +7,15 @@ ENDPOINT=$5
77
CDN=$6
88
VERSION=$(npm pkg get version | sed 's/"//g')/cwr.js
99
CDN+=${VERSION}
10-
INSTALL_METHOD=$7
1110

12-
if [ "$INSTALL_METHOD" = "CDN" ]; then
11+
# CDN
1312
awk '{sub(/\$MONITOR_ID/,MONITOR_ID);sub(/\$REGION/,REGION);sub(/\$CDN/,CDN);sub(/\$GUEST_ARN/,GUEST_ARN);sub(/\$IDENTITY_POOL/,IDENTITY_POOL);sub(/\$ENDPOINT/,ENDPOINT);}1' \
14-
MONITOR_ID="'$MONITOR_ID'" REGION="'$REGION'" CDN="'$CDN'" GUEST_ARN="'$GUEST_ARN'" IDENTITY_POOL="'$IDENTITY_POOL'" ENDPOINT="'$ENDPOINT'" smoke/smoke-test-application-CDN/smoke.html
15-
elif [ "$INSTALL_METHOD" = "NPM_ES" ]; then
13+
MONITOR_ID="'$MONITOR_ID'" REGION="'$REGION'" CDN="'$CDN'" GUEST_ARN="'$GUEST_ARN'" IDENTITY_POOL="'$IDENTITY_POOL'" ENDPOINT="'$ENDPOINT'" smoke/smoke-test-application-CDN/smoke.html > processed_smoke.html
14+
15+
# Module ES
1616
awk '{sub(/\$MONITOR_ID/,MONITOR_ID);sub(/\$REGION/,REGION);sub(/\$CDN/,CDN);sub(/\$GUEST_ARN/,GUEST_ARN);sub(/\$IDENTITY_POOL/,IDENTITY_POOL);sub(/\$ENDPOINT/,ENDPOINT);}1' \
17-
MONITOR_ID="'$MONITOR_ID'" REGION="'$REGION'" CDN="'$CDN'" GUEST_ARN="'$GUEST_ARN'" IDENTITY_POOL="'$IDENTITY_POOL'" ENDPOINT="'$ENDPOINT'" smoke/smoke-test-application-NPM-ES/src/loader-npm-rum.ts
18-
elif [ "$INSTALL_METHOD" = "NPM_CJS" ]; then
17+
MONITOR_ID="'$MONITOR_ID'" REGION="'$REGION'" CDN="'$CDN'" GUEST_ARN="'$GUEST_ARN'" IDENTITY_POOL="'$IDENTITY_POOL'" ENDPOINT="'$ENDPOINT'" smoke/smoke-test-application-NPM-ES/src/loader-npm-rum.ts > smoke/smoke-test-application-NPM-ES/src/loader-npm-rum-tmp.ts
18+
19+
# Module CJS
1920
awk '{sub(/\$MONITOR_ID/,MONITOR_ID);sub(/\$REGION/,REGION);sub(/\$CDN/,CDN);sub(/\$GUEST_ARN/,GUEST_ARN);sub(/\$IDENTITY_POOL/,IDENTITY_POOL);sub(/\$ENDPOINT/,ENDPOINT);}1' \
20-
MONITOR_ID="'$MONITOR_ID'" REGION="'$REGION'" CDN="'$CDN'" GUEST_ARN="'$GUEST_ARN'" IDENTITY_POOL="'$IDENTITY_POOL'" ENDPOINT="'$ENDPOINT'" smoke/smoke-test-application-NPM-CJS/src/loader-npm-rum.ts
21-
else
22-
echo "No valid installation method input"
23-
fi
21+
MONITOR_ID="'$MONITOR_ID'" REGION="'$REGION'" CDN="'$CDN'" GUEST_ARN="'$GUEST_ARN'" IDENTITY_POOL="'$IDENTITY_POOL'" ENDPOINT="'$ENDPOINT'" smoke/smoke-test-application-NPM-CJS/src/loader-npm-rum.ts > smoke/smoke-test-application-NPM-CJS/src/loader-npm-rum-tmp.ts

.github/workflows/cd.yaml

Lines changed: 78 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,6 @@ jobs:
1919
node-version: '16.x'
2020
registry-url: 'https://registry.npmjs.org'
2121

22-
- name: Fetch AWS Credentials for Deployment
23-
run: |
24-
export AWS_ROLE_ARN=${{ secrets.ROLE }}
25-
export AWS_WEB_IDENTITY_TOKEN_FILE=/tmp/awscreds
26-
export AWS_DEFAULT_REGION=us-east-1
27-
28-
echo AWS_WEB_IDENTITY_TOKEN_FILE=$AWS_WEB_IDENTITY_TOKEN_FILE >> $GITHUB_ENV
29-
echo AWS_ROLE_ARN=$AWS_ROLE_ARN >> $GITHUB_ENV
30-
echo AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION >> $GITHUB_ENV
31-
32-
curl -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" "$ACTIONS_ID_TOKEN_REQUEST_URL" | jq -r '.value' > $AWS_WEB_IDENTITY_TOKEN_FILE
33-
3422
- name: Cache NPM modules
3523
uses: actions/cache@v3
3624
with:
@@ -44,18 +32,33 @@ jobs:
4432
npm ci
4533
npm run release
4634
47-
- name: Publish to CloudWatch RUM CDN
48-
id: publish-cdn
35+
- name: Install PlayWright
36+
run: npx playwright install --with-deps chromium
37+
38+
- name: Fetch AWS Credentials for Gamma Deployment
39+
run: |
40+
export AWS_ROLE_ARN=${{ secrets.ROLE_GAMMA }}
41+
export AWS_WEB_IDENTITY_TOKEN_FILE=/tmp/awscreds
42+
export AWS_DEFAULT_REGION=us-east-1
43+
44+
echo AWS_WEB_IDENTITY_TOKEN_FILE=$AWS_WEB_IDENTITY_TOKEN_FILE >> $GITHUB_ENV
45+
echo AWS_ROLE_ARN=$AWS_ROLE_ARN >> $GITHUB_ENV
46+
echo AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION >> $GITHUB_ENV
47+
48+
curl -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" "$ACTIONS_ID_TOKEN_REQUEST_URL" | jq -r '.value' > $AWS_WEB_IDENTITY_TOKEN_FILE
49+
50+
- name: Publish to CloudWatch RUM Gamma CDN
51+
id: publish-cdn-gamma
4952
run: |
5053
chmod u+x .github/scripts/deploy.sh
51-
.github/scripts/deploy.sh ${{ secrets.BUCKET }}
54+
.github/scripts/deploy.sh ${{ secrets.BUCKET_GAMMA }}
5255
53-
- name: Validate versions.csv file
56+
- name: Validate Gamma versions.csv file
5457
run: |
5558
chmod u+x .github/scripts/validate_versions.sh
56-
.github/scripts/validate_versions.sh ${{ secrets.BUCKET }}
59+
.github/scripts/validate_versions.sh ${{ secrets.BUCKET_GAMMA }}
5760
58-
- name: Fetch AWS Credentials for Smoke Test
61+
- name: Fetch AWS Credentials for Gamma Smoke Test
5962
run: |
6063
export AWS_ROLE_ARN=${{ secrets.SMOKE_TEST_ROLE }}
6164
export AWS_WEB_IDENTITY_TOKEN_FILE=/tmp/awscreds
@@ -67,23 +70,11 @@ jobs:
6770
6871
curl -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" "$ACTIONS_ID_TOKEN_REQUEST_URL" | jq -r '.value' > $AWS_WEB_IDENTITY_TOKEN_FILE
6972
70-
- name: Update Smoke Test Application - CDN
71-
id: update-smoke-test-cdn
72-
run: |
73-
chmod u+x .github/scripts/update_smoke_test.sh
74-
.github/scripts/update_smoke_test.sh ${{ secrets.SMOKE_MONITOR }} ${{ secrets.SMOKE_REGION }} ${{ secrets.SMOKE_ARN }} ${{ secrets.SMOKE_IDENTITY }} ${{ secrets.CONFIG_ENDPOINT }} ${{ secrets.CDN }} "CDN" >> processed_smoke.html
75-
76-
- name: Update Smoke Test Application - NPM/ES
77-
id: update-smoke-test-npm-es
78-
run: |
79-
chmod u+x .github/scripts/update_smoke_test.sh
80-
.github/scripts/update_smoke_test.sh ${{ secrets.SMOKE_MONITOR }} ${{ secrets.SMOKE_REGION }} ${{ secrets.SMOKE_ARN }} ${{ secrets.SMOKE_IDENTITY }} ${{ secrets.CONFIG_ENDPOINT }} ${{ secrets.CDN }} "NPM_ES" >> smoke/smoke-test-application-NPM-ES/src/loader-npm-rum-tmp.ts
81-
82-
- name: Update Smoke Test Application - NPM/CJS
83-
id: update-smoke-test-npm-cjs
73+
- name: Update Gamma Smoke Test Application
74+
id: update-smoke-test-gamma-cdn
8475
run: |
8576
chmod u+x .github/scripts/update_smoke_test.sh
86-
.github/scripts/update_smoke_test.sh ${{ secrets.SMOKE_MONITOR }} ${{ secrets.SMOKE_REGION }} ${{ secrets.SMOKE_ARN }} ${{ secrets.SMOKE_IDENTITY }} ${{ secrets.CONFIG_ENDPOINT }} ${{ secrets.CDN }} "NPM_CJS" >> smoke/smoke-test-application-NPM-CJS/src/loader-npm-rum-tmp.ts
77+
.github/scripts/update_smoke_test.sh ${{ secrets.SMOKE_MONITOR }} ${{ secrets.SMOKE_REGION }} ${{ secrets.SMOKE_ARN }} ${{ secrets.SMOKE_IDENTITY }} ${{ secrets.CONFIG_ENDPOINT }} ${{ secrets.CDN_GAMMA }}
8778
8879
- name: Build Smoke Test Application - NPM/ES
8980
id: build-npm-es-application-pre-release
@@ -97,28 +88,50 @@ jobs:
9788
chmod u+x .github/scripts/build_npm_applications.sh
9889
.github/scripts/build_npm_applications.sh "PRE" "NPM-CJS"
9990
100-
- name: Upload Smoke Tests to CloudFront
101-
id: upload-smoke-test
91+
- name: Upload Gamma Smoke Tests to CloudFront
92+
id: upload-smoke-test-gamma
10293
run: |
10394
chmod u+x .github/scripts/upload_smoke_test.sh
10495
.github/scripts/upload_smoke_test.sh ${{ secrets.SMOKE_BUCKET }}
10596
106-
- name: Install PlayWright
107-
run: npx playwright install --with-deps chromium
108-
10997
- name: Run Smoke Test (NPM ES)
11098
env:
11199
URL: ${{ secrets.SMOKE_URL }}
112100
MONITOR: ${{ secrets.SMOKE_MONITOR }}
113101
ENDPOINT: ${{ secrets.SMOKE_ENDPOINT }}
114102
NAME: ${{ secrets.SMOKE_MONITOR_NAME }}
115103
INSTALL_METHOD: 'NPM-ES'
116-
run: npm run smoke:headless
104+
run: |
105+
curl -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" "$ACTIONS_ID_TOKEN_REQUEST_URL" | jq -r '.value' > $AWS_WEB_IDENTITY_TOKEN_FILE
106+
npm run smoke:headless
117107
timeout-minutes: 10
118108

119-
- name: Fetch AWS Credentials for Smoke Test
109+
- name: Run Smoke Test (NPM CJS)
110+
env:
111+
URL: ${{ secrets.SMOKE_URL }}
112+
MONITOR: ${{ secrets.SMOKE_MONITOR }}
113+
ENDPOINT: ${{ secrets.SMOKE_ENDPOINT }}
114+
NAME: ${{ secrets.SMOKE_MONITOR_NAME }}
115+
INSTALL_METHOD: 'NPM-CJS'
120116
run: |
121-
export AWS_ROLE_ARN=${{ secrets.SMOKE_TEST_ROLE }}
117+
curl -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" "$ACTIONS_ID_TOKEN_REQUEST_URL" | jq -r '.value' > $AWS_WEB_IDENTITY_TOKEN_FILE
118+
npm run smoke:headless
119+
timeout-minutes: 10
120+
121+
- name: Run Gamma Smoke Test (CDN GAMMA)
122+
env:
123+
URL: ${{ secrets.SMOKE_URL }}
124+
MONITOR: ${{ secrets.SMOKE_MONITOR }}
125+
ENDPOINT: ${{ secrets.SMOKE_ENDPOINT }}
126+
NAME: ${{ secrets.SMOKE_MONITOR_NAME }}
127+
INSTALL_METHOD: 'CDN'
128+
run: |
129+
curl -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" "$ACTIONS_ID_TOKEN_REQUEST_URL" | jq -r '.value' > $AWS_WEB_IDENTITY_TOKEN_FILE
130+
npm run smoke:headless
131+
132+
- name: Fetch AWS Credentials for Prod Deployment
133+
run: |
134+
export AWS_ROLE_ARN=${{ secrets.ROLE }}
122135
export AWS_WEB_IDENTITY_TOKEN_FILE=/tmp/awscreds
123136
export AWS_DEFAULT_REGION=us-east-1
124137
@@ -128,17 +141,18 @@ jobs:
128141
129142
curl -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" "$ACTIONS_ID_TOKEN_REQUEST_URL" | jq -r '.value' > $AWS_WEB_IDENTITY_TOKEN_FILE
130143
131-
- name: Run Smoke Test (NPM CJS)
132-
env:
133-
URL: ${{ secrets.SMOKE_URL }}
134-
MONITOR: ${{ secrets.SMOKE_MONITOR }}
135-
ENDPOINT: ${{ secrets.SMOKE_ENDPOINT }}
136-
NAME: ${{ secrets.SMOKE_MONITOR_NAME }}
137-
INSTALL_METHOD: 'NPM-CJS'
138-
run: npm run smoke:headless
139-
timeout-minutes: 10
144+
- name: Publish to CloudWatch RUM Prod CDN
145+
id: publish-cdn-prod
146+
run: |
147+
chmod u+x .github/scripts/deploy.sh
148+
.github/scripts/deploy.sh ${{ secrets.BUCKET }}
149+
150+
- name: Validate Prod versions.csv file
151+
run: |
152+
chmod u+x .github/scripts/validate_versions.sh
153+
.github/scripts/validate_versions.sh ${{ secrets.BUCKET }}
140154
141-
- name: Fetch AWS Credentials for Smoke Test
155+
- name: Fetch AWS Credentials for Prod Smoke Test
142156
run: |
143157
export AWS_ROLE_ARN=${{ secrets.SMOKE_TEST_ROLE }}
144158
export AWS_WEB_IDENTITY_TOKEN_FILE=/tmp/awscreds
@@ -150,7 +164,19 @@ jobs:
150164
151165
curl -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" "$ACTIONS_ID_TOKEN_REQUEST_URL" | jq -r '.value' > $AWS_WEB_IDENTITY_TOKEN_FILE
152166
153-
- name: Run Smoke Test (CDN)
167+
- name: Update Prod Smoke Test Application
168+
id: update-smoke-test-prod-cdn
169+
run: |
170+
chmod u+x .github/scripts/update_smoke_test.sh
171+
.github/scripts/update_smoke_test.sh ${{ secrets.SMOKE_MONITOR }} ${{ secrets.SMOKE_REGION }} ${{ secrets.SMOKE_ARN }} ${{ secrets.SMOKE_IDENTITY }} ${{ secrets.CONFIG_ENDPOINT }} ${{ secrets.CDN }}
172+
173+
- name: Upload Prod Smoke Tests to CloudFront
174+
id: upload-smoke-test-prod
175+
run: |
176+
chmod u+x .github/scripts/upload_smoke_test.sh
177+
.github/scripts/upload_smoke_test.sh ${{ secrets.SMOKE_BUCKET }}
178+
179+
- name: Run Prod Smoke Test (CDN)
154180
env:
155181
URL: ${{ secrets.SMOKE_URL }}
156182
MONITOR: ${{ secrets.SMOKE_MONITOR }}

0 commit comments

Comments
 (0)