Skip to content

Instantly share code, notes, and snippets.

@plamoni
Created June 16, 2021 14:37
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save plamoni/4a424af0821f3fd82a2f90bce2198c86 to your computer and use it in GitHub Desktop.
Save plamoni/4a424af0821f3fd82a2f90bce2198c86 to your computer and use it in GitHub Desktop.
Pete's S3+CloudFront GitHub Action Deploy Script
name: Build and Deploy
on:
push:
branches: [ main ]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check Out Code
uses: actions/checkout@v1
- name: Set up Node
uses: actions/setup-node@v1
with:
node-version: '14.x'
- name: Configure Dependency Cache
uses: actions/cache@v1
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install Dependencies
run: npm install
- name: Run Tests
run: npm test
- name: Build
run: npm run build
- name: Upload Coverage
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
- name: Upload to S3
uses: jakejarvis/s3-sync-action@c33d061a8f4bddd78d8b5f9f4e5d2fd40a556980
with:
args: --follow-symlinks --delete
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
AWS_REGION: ${{ secrets.AWS_S3_BUCKET_REGION }}
SOURCE_DIR: 'build'
DEST_DIR: ''
- name: Invalidate Cloudfront (Release)
uses: chetan/invalidate-cloudfront-action@819473e1ccf40ea3178b75c8f31ae375fb45d388
env:
DISTRIBUTION: ${{ secrets.AWS_CLOUDFRONT_DISTRIBUTION }}
PATHS: '/index.html'
AWS_REGION: 'us-east-1'
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment