Skip to content

Commit 6a63d23

Browse files
committed
fix: update S3 cache rule for index.html
1 parent 9b53d87 commit 6a63d23

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

.github/workflows/test-build-and-deploy.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,10 +170,14 @@ jobs:
170170
merge-multiple: true
171171
- name: Copy assets to S3
172172
run: |
173-
AWS_REGION=${{ secrets.aws-region }} AWS_ACCESS_KEY_ID=${{ secrets.aws-access-key-id }} AWS_SECRET_ACCESS_KEY=${{ secrets.aws-secret-access-key }} aws s3 cp ./dist/dist/apps/console/ s3://${{ secrets.s3-bucket-name }}/ --recursive --exclude "index.html"
173+
# Content-hashed assets are immutable: browsers and CDN may cache them for 1 year.
174+
AWS_REGION=${{ secrets.aws-region }} AWS_ACCESS_KEY_ID=${{ secrets.aws-access-key-id }} AWS_SECRET_ACCESS_KEY=${{ secrets.aws-secret-access-key }} aws s3 cp ./dist/dist/apps/console/ s3://${{ secrets.s3-bucket-name }}/ --recursive --exclude "index.html" --cache-control "public, max-age=31536000, immutable"
174175
- name: Copy index.html to S3 last
175176
run: |
176-
AWS_REGION=${{ secrets.aws-region }} AWS_ACCESS_KEY_ID=${{ secrets.aws-access-key-id }} AWS_SECRET_ACCESS_KEY=${{ secrets.aws-secret-access-key }} aws s3 cp ./dist/dist/apps/console/index.html s3://${{ secrets.s3-bucket-name }}/
177+
# index.html must never be cached: it references content-hashed assets by name,
178+
# and a stale version after a new deployment causes "Importing a module script failed"
179+
# in Safari (which applies heuristic caching when Cache-Control is absent).
180+
AWS_REGION=${{ secrets.aws-region }} AWS_ACCESS_KEY_ID=${{ secrets.aws-access-key-id }} AWS_SECRET_ACCESS_KEY=${{ secrets.aws-secret-access-key }} aws s3 cp ./dist/dist/apps/console/index.html s3://${{ secrets.s3-bucket-name }}/ --cache-control "no-store"
177181
178182
staging-smoke-test:
179183
name: Staging smoke test

0 commit comments

Comments
 (0)