Skip to content

DEV/PROD deploy - @devksingh4 #115

DEV/PROD deploy - @devksingh4

DEV/PROD deploy - @devksingh4 #115

Workflow file for this run

name: Deploy all resources to DEV/PROD
run-name: DEV/PROD deploy - @${{ github.actor }}
on:
workflow_dispatch:
push:
branches:
- main
jobs:
test-unit:
runs-on: ubuntu-latest
name: Run Unit Tests
steps:
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 20.x
- uses: actions/checkout@v4
env:
HUSKY: "0"
- name: Set up Python 3.11 for testing
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Run unit testing
run: make test_unit
deploy-dev:
runs-on: ubuntu-latest
concurrency:
group: ${{ github.event.repository.name }}-dev
cancel-in-progress: false
environment: "AWS DEV"
name: Deploy to DEV
needs:
- test-unit
steps:
- name: Set up Node for testing
uses: actions/setup-node@v4
with:
node-version: 20.x
- uses: actions/checkout@v4
env:
HUSKY: "0"
- uses: aws-actions/setup-sam@v2
with:
use-installer: true
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: 3.11
- uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Publish to AWS
run: make deploy_dev
env:
HUSKY: "0"
VITE_RUN_ENVIRONMENT: dev
- name: Publish to Cloudflare
uses: cloudflare/pages-action@v1
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
projectName: management-ui-dev
directory: dist_ui/
gitHubToken: ${{ secrets.GITHUB_TOKEN }}
branch: main
test-dev:
runs-on: ubuntu-latest
name: Run Live Tests
needs:
- deploy-dev
concurrency:
group: ${{ github.event.repository.name }}-dev
cancel-in-progress: false
steps:
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 20.x
- uses: actions/checkout@v4
env:
HUSKY: "0"
- name: Set up Python 3.11 for testing
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Run live testing
run: make test_live_integration
- name: Run E2E testing
run: make test_e2e
env:
PLAYWRIGHT_USERNAME: ${{ secrets.PLAYWRIGHT_USERNAME }}
PLAYWRIGHT_PASSWORD: ${{ secrets.PLAYWRIGHT_PASSWORD }}
deploy-prod:
runs-on: ubuntu-latest
name: Deploy to Prod
concurrency:
group: ${{ github.event.repository.name }}-prod
cancel-in-progress: false
needs:
- test-dev
environment: "AWS PROD"
steps:
- name: Set up Node for testing
uses: actions/setup-node@v4
with:
node-version: 20.x
- uses: actions/checkout@v4
env:
HUSKY: "0"
- uses: aws-actions/setup-sam@v2
with:
use-installer: true
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: 3.11
- uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Publish to AWS
run: make deploy_prod
env:
HUSKY: "0"
VITE_RUN_ENVIRONMENT: prod
- name: Publish to Cloudflare
uses: cloudflare/pages-action@v1
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
projectName: management-ui-prod
directory: dist_ui/
gitHubToken: ${{ secrets.GITHUB_TOKEN }}
branch: main
health-check-prod:
runs-on: ubuntu-latest
name: Confirm services healthy
needs:
- deploy-prod
concurrency:
group: ${{ github.event.repository.name }}-prod
cancel-in-progress: false
steps:
- name: Set up Node for testing
uses: actions/setup-node@v4
with:
node-version: 20.x
- uses: actions/checkout@v4
env:
HUSKY: "0"
- name: Call the health check script
run: make prod_health_check