Merge pull request #1402 from culturecreates/develop #167
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Production build and deploy to S3 | |
on: | |
push: | |
branches: | |
- main | |
jobs: | |
build-and-deploy: | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.S3_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.S3_SECRET_ACCESS_KEY }} | |
AWS_REGION: ca-central-1 | |
WEBHOSTING_BUCKET_NAME: cms.footlight.io | |
runs-on: ubuntu-latest | |
container: | |
image: sleavely/node-awscli:14.x | |
steps: | |
- name: checkout | |
uses: actions/checkout@v2 | |
- name: setup node | |
run: npm install | |
- name: build | |
run: npm run build:production | |
# Upload to S3 | |
- name: sync s3 | |
run: aws s3 sync ./build s3://${{env.WEBHOSTING_BUCKET_NAME}}/ --acl public-read --delete --exclude index.html | |
- name: set cache-control on index.html | |
run: aws s3 cp ./build/index.html s3://${{env.WEBHOSTING_BUCKET_NAME}}/index.html --metadata-directive REPLACE --cache-control max-age=0,s-maxage=86400 --acl public-read --content-type text/html | |
# Invalidate CloudFront (this action) | |
- name: Invalidate CloudFront | |
uses: chetan/invalidate-cloudfront-action@v2 | |
env: | |
DISTRIBUTION: E3S97I9K4Q2UXB | |
PATHS: "/*" | |
- name: Send Email on Success | |
if: success() | |
run: | | |
curl -X "POST" \ | |
'https://api.sendgrid.com/v3/mail/send' \ | |
-H 'Authorization:Bearer ${{ secrets.SENDGRID_API_KEY }}' \ | |
-H 'Content-Type:application/json' \ | |
-d '{ | |
"personalizations":[ | |
{ | |
"to":[ | |
{"email":"${{ vars.SENDGRID_TO_EMAIL }}"}, | |
{"email":"${{ vars.SUPPORT_EMAIL}}"} | |
] | |
} | |
], | |
"from":{"email":"${{ vars.SENDGRID_FROM_EMAIL }}"}, | |
"subject":"Footlight CMS Deployment", | |
"content":[ | |
{ | |
"type":"text/html", | |
"value":"${{ vars.NEW_RELEASE_HTML_PAGE }}" | |
} | |
] | |
}' |