name: Deploy to S3 on: push: branches: [main] jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "22" - name: Install dependencies run: yarn install --frozen-lockfile - name: Build run: yarn build - name: Deploy to S3 env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} run: | apt-get update -qq && apt-get install -y -qq awscli > /dev/null aws s3 sync _site/ s3://${{ vars.S3_BUCKET }} --delete - name: Invalidate CloudFront if: vars.CF_DISTRIBUTION_ID != '' env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} run: | aws cloudfront create-invalidation \ --distribution-id ${{ vars.CF_DISTRIBUTION_ID }} \ --paths "/*"