Skip to content

PROD deploy - @devksingh4 #388

PROD deploy - @devksingh4

PROD deploy - @devksingh4 #388

Workflow file for this run

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