feat: Add GitHub Actions workflow for Amplify deployment and configuration
This commit is contained in:
79
.github/workflows/amplify-deployment.yml
vendored
Normal file
79
.github/workflows/amplify-deployment.yml
vendored
Normal 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
25
tasker-client/amplify.yml
Normal 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: ""
|
||||||
Reference in New Issue
Block a user