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