Skip to content

add scope

add scope #230

Workflow file for this run

name: AWS CD
on:
push:
branches:
- dev
- homolog
- prod
jobs:
DeployToAWS:
environment:
name: ${{ github.ref_name }}
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
steps:
- uses: actions/checkout@v2
- name: Set AWS Account ID, Hosted Zone ID and Certificates
run: |
if [[ "${{ github.ref_name }}" == "dev" ]]; then
echo "AWS_ACCOUNT_ID=${{ secrets.AWS_ACCOUNT_ID_DEV }}" >> $GITHUB_ENV
echo "HOSTED_ZONE_ID=${{ secrets.DEV_HOSTED_ZONE_ID }}" >> $GITHUB_ENV
echo "ACM_CERTIFICATE_ARN=${{ secrets.DEV_ACM_DEVMAUA_CERTIFICATE_ARN }}" >> $GITHUB_ENV
elif [[ "${{ github.ref_name }}" == "homolog" ]]; then
echo "AWS_ACCOUNT_ID=${{ secrets.AWS_ACCOUNT_ID_HOML }}" >> $GITHUB_ENV
echo "HOSTED_ZONE_ID=${{ secrets.HOML_HOSTED_ZONE_ID }}" >> $GITHUB_ENV
echo "ACM_CERTIFICATE_ARN=${{ secrets.HML_ACM_DEVMAUA_CERTIFICATE_ARN }}" >> $GITHUB_ENV
elif [[ "${{ github.ref_name }}" == "prod" ]]; then
echo "AWS_ACCOUNT_ID=${{ secrets.AWS_ACCOUNT_ID_PROD }}" >> $GITHUB_ENV
echo "HOSTED_ZONE_ID=${{ secrets.PROD_HOSTED_ZONE_ID }}" >> $GITHUB_ENV
echo "ACM_CERTIFICATE_ARN=${{ secrets.PROD_ACM_DEVMAUA_CERTIFICATE_ARN }}" >> $GITHUB_ENV
else
echo "Invalid branch name!" && exit 1
fi
- name: Setup AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: ${{ vars.AWS_REGION }}
role-to-assume: arn:aws:iam::${{ env.AWS_ACCOUNT_ID }}:role/GithubActionsRole
role-session-name: github-action
- name: Use Node.js 22.x
uses: actions/setup-node@v3
with:
node-version: 22.x
- name: Setting stage and stack name
run: |
echo "STAGE=${{ github.ref_name }}"
echo "STACK_NAME=PortalInternoStackFront${{github.ref_name}}" >> $GITHUB_ENV
- name: Installing Dependencies
run: |
npm install
npm install -g aws-cdk
- name: Build and Export
run: |
npm run build
env:
VITE_STAGE: ${{ github.ref_name }}
VITE_MSS_API_URL: ${{ vars.MSS_ACTION }}
VITE_BASIC_AUTH_USERPOOL: ${{ secrets.BASIC_AUTH_USERPOOL }}
VITE_AUTH_DOMAIN: ${{ vars.AUTH_DOMAIN }}
VITE_USERPOOL_CLIENT_ID: ${{ vars.USERPOOL_CLIENT_ID }}
- name: Setup envs
run: |
echo AWS_REGION=${{ vars.AWS_REGION }} >> $GITHUB_ENV
echo AWS_ACCOUNT_ID=${{ env.AWS_ACCOUNT_ID }} >> $GITHUB_ENV
echo STACK_NAME=${{ env.STACK_NAME }} >> $GITHUB_ENV
echo GITHUB_REF_NAME=${{ github.ref_name }} >> $GITHUB_ENV
echo ACM_CERTIFICATE_ARN=${{ env.ACM_CERTIFICATE_ARN }} >> $GITHUB_ENV
echo HOSTED_ZONE_ID=${{ env.HOSTED_ZONE_ID }} >> $GITHUB_ENV
echo ALTERNATIVE_DOMAIN_NAME=${{ vars.ALTERNATIVE_DOMAIN_NAME }} >> $GITHUB_ENV
echo ALTERNATIVE_DOMAIN_NAME_2=${{ vars.ALTERNATIVE_DOMAIN_NAME_2 }} >> $GITHUB_ENV
- name: Deploy with CDK
run: |
cd iac
npm install
cdk synth
cdk deploy --require-approval never
- name: Set CloudFront ID
run: |
CLOUD_FRONT_ID=$(aws cloudformation --region ${{vars.AWS_REGION}} describe-stacks --stack-name ${{env.STACK_NAME}} --query "Stacks[0].Outputs[?OutputKey=='PortalInternoFrontDistributionId${{github.ref_name}}'].OutputValue" --output text)
echo "CLOUD_FRONT_ID='$CLOUD_FRONT_ID'" >> $GITHUB_ENV
- name: Set AWS Bucket
run: |
AWS_BUCKET=$(aws cloudformation --region ${{vars.AWS_REGION}} describe-stacks --stack-name ${{env.STACK_NAME}} --query "Stacks[0].Outputs[?OutputKey=='PortalInternoFrontBucketName${{github.ref_name}}'].OutputValue" --output text)
echo "AWS_BUCKET='$AWS_BUCKET'" >> $GITHUB_ENV
- name: Upload to S3
run: aws s3 cp dist s3://${{env.AWS_BUCKET}}/ --recursive --region ${{ vars.AWS_REGION }}
- name: Clear CDN cache
run: aws cloudfront create-invalidation --distribution-id ${{env.CLOUD_FRONT_ID}} --paths "/*" --region us-east-1