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
|
||||
Reference in New Issue
Block a user