Skip to content

feat: deploy to s3

feat: deploy to s3 #9

Workflow file for this run

name: Deploy Next.js to AWS S3
on:
pull_request:
branches: [ "main" ]
paths:
- .github/workflows/aws-static.yml
- client/**
- assistant/**
env:
AWS_REGION: ${{ vars.AWS_REGION }}
NEXT_PUBLIC_API_DOMAIN: ${{ vars.NEXT_PUBLIC_API_DOMAIN }}
AMPLIFY_APP_ID: ${{ vars.AMPLIFY_APP_ID }}
S3_BUCKET: ${{ vars.S3_BUCKET }}
NEXT_STANDALONE: "true"
permissions:
id-token: write
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Cache node modules
uses: actions/cache@v2
with:
path: client/node_modules
key: ${{ runner.os }}-node-${{ hashFiles('client/**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Node ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::654654285942:role/Github-OIDC
audience: sts.amazonaws.com
aws-region: ${{ env.AWS_REGION }}
- name: Install Dependencies
run: npm install
working-directory: ./client
- name: Build Next App
run: npm run build
working-directory: ./client
- name: Upload Build to S3
working-directory: ./client
run: |
find out -type f -name '*.html' | while read file; do
cp "$file" "${file%.html}"
done
aws s3 sync ./out s3://${{ env.S3_BUCKET }} --content-type 'text/html'