Skip to content

refactor: update owner role #41

refactor: update owner role

refactor: update owner role #41

Workflow file for this run

name: AWS CD
on:
push:
branches:
- dev
- homolog
- prod
workflow_dispatch:
jobs:
DeployToAWS:
environment:
name: ${{ github.ref_name }}
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
steps:
- uses: actions/checkout@v2
- name: Setup AWS Credentials
uses: aws-actions/configure-aws-credentials@v2
with:
aws-region: ${{ vars.AWS_REGION }}
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/GithubActionsRole
role-session-name: github-action
- name: Use Node.js 20.x
uses: actions/setup-node@v3
with:
node-version: 20.x
- name: Setting stage and stack name
run: |
echo "STAGE=${{ github.ref_name }}"
echo "STACK_NAME=KnowlyStackFront${{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_API_URL: ${{vars.API_URL}}
VITE_BUCKET_NAME: ${{vars.BUCKET_NAME}}
VITE_API_CHAT_URL: ${{vars.API_CHAT_URL}}
- name: Setup envs
run: |
echo AWS_REGION=${{ vars.AWS_REGION }} >> $GITHUB_ENV
echo AWS_ACCOUNT_ID=${{ secrets.AWS_ACCOUNT_ID }} >> $GITHUB_ENV
echo STACK_NAME=${{ env.STACK_NAME }} >> $GITHUB_ENV
echo GITHUB_REF_NAME=${{ github.ref_name }} >> $GITHUB_ENV
echo HOSTED_ZONE_ID=${{ secrets.HOSTED_ZONE_ID }} >> $GITHUB_ENV
echo ACM_CERTIFICATE_ARN=${{ secrets.KNOWLY_ACM_CERTIFICATE_ARN }} >> $GITHUB_ENV
echo ACM_CERTIFICATE_ARN_2=${{ secrets.KNOWLY_ACM_CERTIFICATE_ARN_2 }} >> $GITHUB_ENV
if [[ "${{ github.ref_name }}" == "prod" ]]; then
echo ALTERNATIVE_DOMAIN_NAME_1=${{ vars.ALTERNATIVE_DOMAIN_NAME_1 }} >> $GITHUB_ENV
echo ALTERNATIVE_DOMAIN_NAME_2=${{ vars.ALTERNATIVE_DOMAIN_NAME_2 }} >> $GITHUB_ENV
elif [[ "${{ github.ref_name }}" == "homolog" ]]; then
echo ALTERNATIVE_DOMAIN_NAME=${{ vars.ALTERNATIVE_DOMAIN_NAME }} >> $GITHUB_ENV
else
echo ALTERNATIVE_DOMAIN_NAME=${{ vars.ALTERNATIVE_DOMAIN_NAME }} >> $GITHUB_ENV
fi
- 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=='KnowlyFrontDistributionId${{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=='KnowlyFrontBucketName${{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