PROD deploy - @devksingh4 #452
Workflow file for this run
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: Deploy all resources to PROD | |
| run-name: PROD deploy - @${{ github.actor }} | |
| on: | |
| release: | |
| types: [created] | |
| tags: | |
| - 'v*' | |
| jobs: | |
| test-unit: | |
| permissions: | |
| contents: read | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| name: Run Unit Tests | |
| steps: | |
| - uses: actions/checkout@v5 | |
| env: | |
| HUSKY: "0" | |
| - name: Set up Node | |
| uses: actions/setup-node@v5 | |
| with: | |
| node-version: 22.x | |
| cache: "yarn" | |
| - name: Setup Terraform | |
| uses: hashicorp/setup-terraform@v3 | |
| with: | |
| terraform_version: 1.12.2 | |
| - name: Restore Yarn Cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: node_modules | |
| key: yarn-modules-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}-dev | |
| restore-keys: | | |
| yarn-modules-${{ runner.arch }}-${{ runner.os }}- | |
| - name: Run unit testing | |
| run: make test_unit | |
| build: | |
| permissions: | |
| contents: read | |
| runs-on: ubuntu-24.04-arm | |
| timeout-minutes: 15 | |
| name: Build Application | |
| steps: | |
| - uses: actions/checkout@v5 | |
| env: | |
| HUSKY: "0" | |
| - name: Set up Node | |
| uses: actions/setup-node@v5 | |
| with: | |
| node-version: 22.x | |
| cache: "yarn" | |
| - name: Restore Yarn Cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: node_modules | |
| key: yarn-modules-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}-prod | |
| restore-keys: | | |
| yarn-modules-${{ runner.arch }}-${{ runner.os }}- | |
| - name: Extract version from tag | |
| id: get_version | |
| run: echo "VITE_BUILD_HASH=${GITHUB_REF#refs/tags/v}" >> "$GITHUB_ENV" | |
| - name: Run Prod build | |
| run: make build | |
| env: | |
| HUSKY: "0" | |
| VITE_RUN_ENVIRONMENT: prod | |
| RunEnvironment: prod | |
| VITE_BUILD_HASH: ${{ env.VITE_BUILD_HASH }} | |
| - name: Upload Build files | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| include-hidden-files: true | |
| name: build-prod | |
| path: | | |
| dist/ | |
| dist_ui/ | |
| - name: Clean and run QA build | |
| run: sudo rm -rf dist/ && sudo rm -rf dist_ui/ && make build | |
| env: | |
| HUSKY: "0" | |
| VITE_RUN_ENVIRONMENT: dev | |
| RunEnvironment: dev | |
| - name: Upload Build files | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| include-hidden-files: true | |
| name: build-qa | |
| path: | | |
| dist/ | |
| dist_ui/ | |
| test-e2e: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| name: Run E2E testing | |
| concurrency: | |
| group: ${{ github.event.repository.name }}-dev-env | |
| cancel-in-progress: false | |
| permissions: | |
| id-token: write | |
| contents: read | |
| needs: | |
| - build | |
| environment: "AWS QA" | |
| steps: | |
| - uses: actions/checkout@v5 | |
| env: | |
| HUSKY: "0" | |
| - name: Set up Node for testing | |
| uses: actions/setup-node@v5 | |
| with: | |
| node-version: 22.x | |
| cache: "yarn" | |
| - name: Setup Terraform | |
| uses: hashicorp/setup-terraform@v3 | |
| with: | |
| terraform_version: 1.12.2 | |
| - name: Restore Yarn Cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: node_modules | |
| key: yarn-modules-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}-dev | |
| restore-keys: | | |
| yarn-modules-${{ runner.arch }}-${{ runner.os }}- | |
| - name: Download Build files | |
| uses: actions/download-artifact@v5 | |
| with: | |
| name: build-qa | |
| - uses: aws-actions/configure-aws-credentials@v5 | |
| with: | |
| role-to-assume: arn:aws:iam::427040638965:role/GitHubActionsRole | |
| role-session-name: Core_QA_Deployment_${{ github.run_id }} | |
| aws-region: us-east-2 | |
| - name: Publish to AWS | |
| run: make deploy_qa | |
| env: | |
| HUSKY: "0" | |
| VITE_RUN_ENVIRONMENT: dev | |
| - name: Run health check | |
| run: make dev_health_check | |
| - name: Run E2E testing | |
| run: make test_e2e | |
| env: | |
| JWT_KEY: ${{ secrets.JWT_KEY }} | |
| PLAYWRIGHT_USERNAME: ${{ secrets.PLAYWRIGHT_USERNAME }} | |
| PLAYWRIGHT_PASSWORD: ${{ secrets.PLAYWRIGHT_PASSWORD }} | |
| deploy-prod: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| name: Deploy to Prod and Run Health Check | |
| concurrency: | |
| group: ${{ github.event.repository.name }}-prod | |
| cancel-in-progress: false | |
| permissions: | |
| id-token: write | |
| contents: read | |
| needs: | |
| - test-unit | |
| - test-e2e | |
| environment: "AWS PROD" | |
| steps: | |
| - name: Set up Node for testing | |
| uses: actions/setup-node@v5 | |
| with: | |
| node-version: 22.x | |
| - name: Setup Terraform | |
| uses: hashicorp/setup-terraform@v3 | |
| with: | |
| terraform_version: 1.12.2 | |
| - uses: actions/checkout@v5 | |
| env: | |
| HUSKY: "0" | |
| - name: Download Build files | |
| uses: actions/download-artifact@v5 | |
| with: | |
| name: build-prod | |
| - uses: aws-actions/configure-aws-credentials@v5 | |
| with: | |
| role-to-assume: arn:aws:iam::298118738376:role/GitHubActionsRole | |
| role-session-name: Core_Prod_Deployment_${{ github.run_id }} | |
| aws-region: us-east-2 | |
| - name: Publish to AWS | |
| run: make deploy_prod | |
| env: | |
| HUSKY: "0" | |
| VITE_RUN_ENVIRONMENT: prod | |
| - name: Call the health check script | |
| run: make prod_health_check |