feat: Add GitHub Actions workflow for Amplify deployment and configuration

This commit is contained in:
2024-11-23 18:29:38 +02:00
parent 11e61829f1
commit 288bc17ffe
2 changed files with 104 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
name: Set Amplify Environment Variables and Trigger Deployment
permissions:
id-token: write
contents: read
on:
push:
branches:
- main
paths:
- "tasker-client/**"
jobs:
checkout-code:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
install-cli:
runs-on: ubuntu-latest
needs: checkout-code
steps:
- name: Install AWS CLI
run: |
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
- name: Verify AWS CLI Installation
run: aws --version
- name: Install Amplify CLI
run: |
npm install -g @aws-amplify/cli
- name: Verify Amplify CLI Installation
run: amplify --version
add-credentials:
runs-on: ubuntu-latest
needs: install-cli
steps:
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v3
with:
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
aws-region: ${{ secrets.AWS_REGION }}
deploy-amplify:
runs-on: ubuntu-latest
needs: [checkout-code, add-credentials, install-cli]
steps:
- name: Fetch API URL from SSM
id: fetch-ssm
run: |
export NEXT_PUBLIC_API_BASE_URL=$(aws ssm get-parameter --name "/tasker/api/base-url" --query "Parameter.Value" --output text)
export NEXT_PUBLIC_COGNITO_USER_POOL_ID=$(aws ssm get-parameter --name "/tasker/cognito/user-pool-id" --query "Parameter.Value" --output text)
export NEXT_PUBLIC_COGNITO_USER_POOL_CLIENT_ID=$(aws ssm get-parameter --name "/tasker/cognito/client-id" --query "Parameter.Value" --output text)
export S3_PUBLIC_IMAGE_URL=$(aws ssm get-parameter --name "/tasker/s3/public-images-url" --query "Parameter.Value" --output text)
echo "NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL" >> $GITHUB_ENV
echo "NEXT_PUBLIC_COGNITO_USER_POOL_ID=$NEXT_PUBLIC_COGNITO_USER_POOL_ID" >> $GITHUB_ENV
echo "NEXT_PUBLIC_COGNITO_USER_POOL_CLIENT_ID=$NEXT_PUBLIC_COGNITO_USER_POOL_CLIENT_ID" >> $GITHUB_ENV
echo "S3_PUBLIC_IMAGE_URL=$S3_PUBLIC_IMAGE_URL" >> $GITHUB_ENV
- name: Set Amplify Environment Variables
run: |
amplify env set NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL
amplify env set NEXT_PUBLIC_COGNITO_USER_POOL_ID=$NEXT_PUBLIC_COGNITO_USER_POOL_ID
amplify env set NEXT_PUBLIC_COGNITO_USER_POOL_CLIENT_ID=$NEXT_PUBLIC_COGNITO_USER_POOL_CLIENT_ID
amplify env set S3_PUBLIC_IMAGE_URL=$S3_PUBLIC_IMAGE_URL
- name: Deploy Amplify App
run: |
aws amplify start-deployment \
--app-id ${{ secrets.AWS_AMPLIFY_APP_ID }} \
--branch-name main

25
tasker-client/amplify.yml Normal file
View File

@@ -0,0 +1,25 @@
version: 1.0
frontend:
phases:
preBuild:
commands:
- cd tasker-client
- npm ci
build:
commands:
- cd tasker-client
- npm run build
artifacts:
baseDirectory: tasker-client/.next
files:
- "**/*"
cache:
paths:
- tasker-client/node_modules/**/*
env:
variables:
# To be populated by GitHub Actions
NEXT_PUBLIC_API_BASE_URL: ""
NEXT_PUBLIC_COGNITO_USER_POOL_ID: ""
NEXT_PUBLIC_COGNITO_USER_POOL_CLIENT_ID: ""
S3_PUBLIC_IMAGE_URL: ""