Skip to content

added system diagram #4

added system diagram

added system diagram #4

name: Build and Deploy to S3 Bucket
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
env:
BUILD_DIR_NAME: dist
permissions:
id-token: write
contents: read
jobs:
builder:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.x]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
- run: npm ci
- run: npm run build
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: build_files
path: ${{env.BUILD_DIR_NAME}}
remove_old:
needs: builder
runs-on: ubuntu-latest
steps:
- uses: aws-actions/configure-aws-credentials@v4
name: Configure S3
with:
role-to-assume: ${{secrets.AWS_ROLE_ARN}}
aws-region: ${{secrets.AWS_REGION}}
- name: Remove old files
run: |
aws s3 rm --recursive s3://${{ secrets.AWS_S3_BUCKET}}/assets
aws s3 rm s3://${{ secrets.AWS_S3_BUCKET}}/index.html
upload:
needs: [remove_old, builder]
runs-on: ubuntu-latest
steps:
- name: Download processed build
uses: actions/download-artifact@v4
with:
name: build_files
- uses: aws-actions/configure-aws-credentials@v4
name: Configure S3
with:
role-to-assume: ${{secrets.AWS_ROLE_ARN}}
aws-region: ${{secrets.AWS_REGION}}
- name: Upload new
run: |
ls -lah
aws s3 cp --recursive assets s3://${{ secrets.AWS_S3_BUCKET}}/assets
aws s3 cp index.html s3://${{ secrets.AWS_S3_BUCKET}}/