diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml new file mode 100644 index 0000000000..c8bc4e2095 --- /dev/null +++ b/.github/workflows/frontend.yml @@ -0,0 +1,42 @@ +name: Deploy Frontend + +on: + push: + branches: [ 'main' ] + paths: + - 'frontend/**' # Only trigger if changes are made in the frontend directory + + workflow_dispatch: + +permissions: + id-token: write # This is required for requesting the JWT + contents: read # This is required for actions/checkout + +env: + AWS_REGION: ap-southeast-1 + S3_BUCKET_NAME: app.peerprep.org + +jobs: + deploy: + name: Deploy Frontend + runs-on: ubuntu-latest + environment: production + + steps: + - uses: actions/checkout@v4 + + - name: Configure AWS credentials + id: aws-configure + uses: aws-actions/configure-aws-credentials@v4.0.2 + with: + role-to-assume: arn:aws:iam::491085383176:role/github_s3_copy + role-session-name: GitHub_to_AWS_via_FederatedOIDC + aws-region: ${{ env.AWS_REGION }} + + - name: Build frontend distribution + working-directory: frontend + run: npm ci && npm run build + + - name: Sync distribution to S3 + run: | + aws s3 sync ./frontend/dist/frontend/browser/ s3://$S3_BUCKET_NAME --delete