Skip to content
This repository was archived by the owner on Mar 29, 2025. It is now read-only.

Commit e5148ef

Browse files
authored
CCP-2582: ci: deploy frontend to S3 bucket and invalidate cloudfront for all ci (#83)
1 parent bfb9b09 commit e5148ef

File tree

4 files changed

+323
-11
lines changed

4 files changed

+323
-11
lines changed

.github/workflows/ci-alpha.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ jobs:
7373
env:
7474
WEB_SDK_DIST_TAG: alpha
7575
UX_KIT_DIST_TAG: alpha
76+
CLOUDFRONT_DESTINATION_PATH: beta
7677
with:
7778
node-version: "16.9.1"
7879
- run: |
@@ -86,9 +87,17 @@ jobs:
8687
- name: publish frontend for develop - alpha Web SDK
8788
uses: jakejarvis/s3-sync-action@master
8889
env:
89-
AWS_S3_BUCKET: dlb-capi-showcase # this should likely go to secrets
90+
AWS_S3_BUCKET: dlb-capi-showcase
9091
AWS_ACCESS_KEY_ID: ${{ secrets.VOXEET_AWS_ACCESS_KEY_ID }}
9192
AWS_SECRET_ACCESS_KEY: ${{ secrets.VOXEET_AWS_SECRET_ACCESS_KEY }}
9293
AWS_REGION: ${{ secrets.VOXEET_AWS_REGION }}
9394
SOURCE_DIR: "frontend/dist"
94-
DEST_DIR: "alpha"
95+
DEST_DIR: "${{ env.CLOUDFRONT_DESTINATION_PATH }}"
96+
- name: invalidate CloudFront
97+
uses: chetan/invalidate-cloudfront-action@v2
98+
env:
99+
DISTRIBUTION: E5A6FYRYTC8IV
100+
PATHS: "/${{ env.CLOUDFRONT_DESTINATION_PATH }}//*"
101+
AWS_ACCESS_KEY_ID: ${{ secrets.VOXEET_AWS_ACCESS_KEY_ID }}
102+
AWS_SECRET_ACCESS_KEY: ${{ secrets.VOXEET_AWS_SECRET_ACCESS_KEY }}
103+
AWS_REGION: ${{ secrets.VOXEET_AWS_REGION }}

.github/workflows/ci-beta.yml

Lines changed: 55 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ on:
66
- master
77
- develop
88
schedule:
9-
- cron: '0 2 * * *'
9+
- cron: "0 2 * * *"
1010
repository_dispatch:
11-
types: [ uxkit-beta ]
11+
types: [uxkit-beta]
1212

1313
jobs:
14-
build_frontend_beta:
14+
build_frontend_beta_docker_image:
1515
runs-on: ubuntu-latest
1616
steps:
1717
- uses: actions/checkout@v2
@@ -40,4 +40,55 @@ jobs:
4040
password: ${{ secrets.DOCKER_PASSWORD }}
4141
buildargs: CUSTOM_REGISTRY_URL,CUSTOM_REGISTRY_TOKEN,WEB_SDK_DIST_TAG,UX_KIT_DIST_TAG
4242
buildoptions: "--pull"
43-
tags: "${{ env.WEB_SDK_DIST_TAG }}"
43+
tags: "${{ env.WEB_SDK_DIST_TAG }}"
44+
build_frontend_beta:
45+
runs-on: ubuntu-latest
46+
defaults:
47+
run:
48+
working-directory: ./frontend
49+
steps:
50+
- uses: actions/checkout@v2
51+
- name: Configure AWS Credentials
52+
uses: aws-actions/configure-aws-credentials@v1
53+
with:
54+
aws-access-key-id: ${{ secrets.VOXEET_AWS_ACCESS_KEY_ID }}
55+
aws-secret-access-key: ${{ secrets.VOXEET_AWS_SECRET_ACCESS_KEY }}
56+
aws-region: ${{ secrets.VOXEET_AWS_REGION }}
57+
- name: Set NPM token when logging to CodeArtifact
58+
run: |
59+
CODEARTIFACT_TOKEN=$(/usr/local/bin/aws codeartifact get-authorization-token --duration-seconds 1800 --domain ${{ secrets.CODEARTIFACT_DOMAIN }} --domain-owner ${{ secrets.CODEARTIFACT_DOMAIN_OWNER }} --region ${{ secrets.AWS_REGION }} --output text --query authorizationToken)
60+
echo "::add-mask::$CODEARTIFACT_TOKEN"
61+
echo "CUSTOM_REGISTRY_TOKEN=${{ secrets.CODEARTIFACT_NPM_SNAPSHOTS_REPOSITORY_TOKEN }}$CODEARTIFACT_TOKEN" >> $GITHUB_ENV
62+
- name: build frontend for develop - beta Web SDK
63+
uses: actions/setup-node@v2
64+
env:
65+
WEB_SDK_DIST_TAG: beta
66+
UX_KIT_DIST_TAG: beta
67+
CLOUDFRONT_DESTINATION_PATH: beta
68+
with:
69+
node-version: "16.9.1"
70+
- run: |
71+
npm config set registry=${{ secrets.CODEARTIFACT_NPM_SNAPSHOTS_REPOSITORY_URL }}
72+
npm config set $CUSTOM_REGISTRY_TOKEN
73+
npm config set always-auth true
74+
yarn add -E @voxeet/voxeet-web-sdk@${{ env.WEB_SDK_DIST_TAG }}
75+
yarn add -E @voxeet/react-components@${{ env.UX_KIT_DIST_TAG }}
76+
yarn install
77+
yarn build
78+
- name: publish frontend for develop - beta Web SDK
79+
uses: jakejarvis/s3-sync-action@master
80+
env:
81+
AWS_S3_BUCKET: dlb-capi-showcase
82+
AWS_ACCESS_KEY_ID: ${{ secrets.VOXEET_AWS_ACCESS_KEY_ID }}
83+
AWS_SECRET_ACCESS_KEY: ${{ secrets.VOXEET_AWS_SECRET_ACCESS_KEY }}
84+
AWS_REGION: ${{ secrets.VOXEET_AWS_REGION }}
85+
SOURCE_DIR: "frontend/dist"
86+
DEST_DIR: "${{ env.CLOUDFRONT_DESTINATION_PATH }}"
87+
- name: invalidate cloudfront distribution paths
88+
uses: chetan/invalidate-cloudfront-action@v2
89+
env:
90+
DISTRIBUTION: E5A6FYRYTC8IV
91+
PATHS: /${{ env.CLOUDFRONT_DESTINATION_PATH }}/*
92+
AWS_REGION: ${{ secrets.VOXEET_AWS_REGION }}
93+
AWS_ACCESS_KEY_ID: ${{ secrets.VOXEET_AWS_ACCESS_KEY_ID }}
94+
AWS_SECRET_ACCESS_KEY: ${{ secrets.VOXEET_AWS_SECRET_ACCESS_KEY }}

.github/workflows/ci-master.yml

Lines changed: 101 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
buildoptions: "--pull"
2424
tags: "${{ env.GITHUB_REF_SLUG }}"
2525

26-
build_frontend_master_production:
26+
build_frontend_master_production_docker:
2727
runs-on: ubuntu-latest
2828
steps:
2929
- uses: actions/checkout@v2
@@ -38,8 +38,57 @@ jobs:
3838
password: ${{ secrets.DOCKER_PASSWORD }}
3939
buildoptions: "--pull"
4040
tags: "${{ env.GITHUB_REF_SLUG }}"
41+
build_frontend_master_production:
42+
runs-on: ubuntu-latest
43+
defaults:
44+
run:
45+
working-directory: ./frontend
46+
steps:
47+
- uses: actions/checkout@v2
48+
- name: Configure AWS Credentials
49+
uses: aws-actions/configure-aws-credentials@v1
50+
with:
51+
aws-access-key-id: ${{ secrets.VOXEET_AWS_ACCESS_KEY_ID }}
52+
aws-secret-access-key: ${{ secrets.VOXEET_AWS_SECRET_ACCESS_KEY }}
53+
aws-region: ${{ secrets.VOXEET_AWS_REGION }}
54+
- name: Set NPM token when logging to CodeArtifact
55+
run: |
56+
CODEARTIFACT_TOKEN=$(/usr/local/bin/aws codeartifact get-authorization-token --duration-seconds 1800 --domain ${{ secrets.CODEARTIFACT_DOMAIN }} --domain-owner ${{ secrets.CODEARTIFACT_DOMAIN_OWNER }} --region ${{ secrets.AWS_REGION }} --output text --query authorizationToken)
57+
echo "::add-mask::$CODEARTIFACT_TOKEN"
58+
echo "CUSTOM_REGISTRY_TOKEN=${{ secrets.CODEARTIFACT_NPM_RELEASES_REPOSITORY_TOKEN }}$CODEARTIFACT_TOKEN" >> $GITHUB_ENV
59+
- name: build frontend for master - production Web SDK
60+
uses: actions/setup-node@v2
61+
env:
62+
CUSTOM_REGISTRY_URL: ${{ secrets.CODEARTIFACT_NPM_RELEASES_REPOSITORY_URL }}
4163

42-
build_frontend_master_staging:
64+
with:
65+
node-version: "16.9.1"
66+
- run: |
67+
npm config set registry=${{ secrets.CODEARTIFACT_NPM_RELEASES_REPOSITORY_URL }}
68+
npm config set $CUSTOM_REGISTRY_TOKEN
69+
npm config set always-auth true
70+
yarn add -E @voxeet/voxeet-web-sdk@${{ env.GITHUB_REF_SLUG }}
71+
yarn install
72+
yarn build
73+
- name: publish frontend for frontend master Web SDK
74+
uses: jakejarvis/s3-sync-action@master
75+
env:
76+
AWS_S3_BUCKET: dlb-capi-showcase
77+
AWS_ACCESS_KEY_ID: ${{ secrets.VOXEET_AWS_ACCESS_KEY_ID }}
78+
AWS_SECRET_ACCESS_KEY: ${{ secrets.VOXEET_AWS_SECRET_ACCESS_KEY }}
79+
AWS_REGION: ${{ secrets.VOXEET_AWS_REGION }}
80+
SOURCE_DIR: "frontend/dist"
81+
DEST_DIR: ${{ env.GITHUB_REF_SLUG }}
82+
- name: invalidate cloudfront distribution paths
83+
uses: chetan/invalidate-cloudfront-action@v2
84+
env:
85+
DISTRIBUTION: E5A6FYRYTC8IV
86+
PATHS: "/${{ env.GITHUB_REF_SLUG }}/*"
87+
AWS_REGION: ${{ secrets.VOXEET_AWS_REGION }}
88+
AWS_ACCESS_KEY_ID: ${{ secrets.VOXEET_AWS_ACCESS_KEY_ID }}
89+
AWS_SECRET_ACCESS_KEY: ${{ secrets.VOXEET_AWS_SECRET_ACCESS_KEY }}
90+
91+
build_frontend_master_staging_docker_image:
4392
runs-on: ubuntu-latest
4493
steps:
4594
- uses: actions/checkout@v2
@@ -76,3 +125,53 @@ jobs:
76125
buildargs: CUSTOM_REGISTRY_URL,CUSTOM_REGISTRY_TOKEN,WEB_SDK_DIST_TAG
77126
buildoptions: "--pull"
78127
tags: "${{ env.WEB_SDK_DIST_TAG }}"
128+
129+
build_frontend_master_staging:
130+
runs-on: ubuntu-latest
131+
defaults:
132+
run:
133+
working-directory: ./frontend
134+
steps:
135+
- uses: actions/checkout@v2
136+
- name: Configure AWS Credentials
137+
uses: aws-actions/configure-aws-credentials@v1
138+
with:
139+
aws-access-key-id: ${{ secrets.VOXEET_AWS_ACCESS_KEY_ID }}
140+
aws-secret-access-key: ${{ secrets.VOXEET_AWS_SECRET_ACCESS_KEY }}
141+
aws-region: ${{ secrets.VOXEET_AWS_REGION }}
142+
- name: Set NPM token when logging to CodeArtifact
143+
run: |
144+
CODEARTIFACT_TOKEN=$(/usr/local/bin/aws codeartifact get-authorization-token --duration-seconds 1800 --domain ${{ secrets.CODEARTIFACT_DOMAIN }} --domain-owner ${{ secrets.CODEARTIFACT_DOMAIN_OWNER }} --region ${{ secrets.AWS_REGION }} --output text --query authorizationToken)
145+
echo "::add-mask::$CODEARTIFACT_TOKEN"
146+
echo "CUSTOM_REGISTRY_TOKEN=${{ secrets.CODEARTIFACT_NPM_RELEASES_REPOSITORY_TOKEN }}$CODEARTIFACT_TOKEN" >> $GITHUB_ENV
147+
- name: build frontend for develop - frontend master_staging Web SDK
148+
uses: actions/setup-node@v2
149+
env:
150+
WEB_SDK_DIST_TAG: master-staging
151+
CUSTOM_REGISTRY_URL: ${{ secrets.CODEARTIFACT_NPM_RELEASES_REPOSITORY_URL }}
152+
with:
153+
node-version: "16.9.1"
154+
- run: |
155+
npm config set registry=${{ secrets.CODEARTIFACT_NPM_RELEASES_REPOSITORY_URL }}
156+
npm config set $CUSTOM_REGISTRY_TOKEN
157+
npm config set always-auth true
158+
yarn add -E @voxeet/voxeet-web-sdk@${{ env.WEB_SDK_DIST_TAG }}
159+
yarn install
160+
yarn build
161+
- name: publish frontend for frontend master_staging Web SDK
162+
uses: jakejarvis/s3-sync-action@master
163+
env:
164+
AWS_S3_BUCKET: dlb-capi-showcase
165+
AWS_ACCESS_KEY_ID: ${{ secrets.VOXEET_AWS_ACCESS_KEY_ID }}
166+
AWS_SECRET_ACCESS_KEY: ${{ secrets.VOXEET_AWS_SECRET_ACCESS_KEY }}
167+
AWS_REGION: ${{ secrets.VOXEET_AWS_REGION }}
168+
SOURCE_DIR: "frontend/dist"
169+
DEST_DIR: ${{ env.WEB_SDK_DIST_TAG }}
170+
- name: invalidate cloudfront distribution paths
171+
uses: chetan/invalidate-cloudfront-action@v2
172+
env:
173+
DISTRIBUTION: E5A6FYRYTC8IV
174+
PATHS: "/${{ env.WEB_SDK_DIST_TAG }}/*"
175+
AWS_REGION: ${{ secrets.VOXEET_AWS_REGION }}
176+
AWS_ACCESS_KEY_ID: ${{ secrets.VOXEET_AWS_ACCESS_KEY_ID }}
177+
AWS_SECRET_ACCESS_KEY: ${{ secrets.VOXEET_AWS_SECRET_ACCESS_KEY }}

0 commit comments

Comments
 (0)