refactor: update owner role #41
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |