PROD deploy - @devksingh4 #379
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: | |
permissions: | |
contents: read | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
name: Run Unit Tests | |
steps: | |
- uses: actions/checkout@v4 | |
env: | |
HUSKY: "0" | |
- name: Set up Node | |
uses: actions/setup-node@v4 | |
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@v4 | |
env: | |
HUSKY: "0" | |
- name: Set up Node | |
uses: actions/setup-node@v4 | |
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 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: | | |
.aws-sam/ | |
dist/ | |
dist_ui/ | |
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 | |
- build | |
environment: "AWS PROD" | |
steps: | |
- name: Set up Node for testing | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 22.x | |
- name: Setup Terraform | |
uses: hashicorp/setup-terraform@v3 | |
with: | |
terraform_version: 1.12.2 | |
- uses: actions/checkout@v4 | |
env: | |
HUSKY: "0" | |
- name: Download Build files | |
uses: actions/download-artifact@v4 | |
with: | |
name: build-prod | |
- uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: arn:aws:iam::298118738376:role/GitHubActionsRole | |
role-session-name: Core_Prod_Deployment_${{ github.run_id }} | |
aws-region: us-east-1 | |
- 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 |