Skip to content

DEV deploy - @devksingh4 #557

DEV deploy - @devksingh4

DEV deploy - @devksingh4 #557

Workflow file for this run

name: Deploy all resources to DEV
run-name: DEV deploy - @${{ github.actor }}
on:
workflow_dispatch:
pull_request:
branches:
- main
jobs:
test:
runs-on: ubuntu-latest
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: Restore Yarn Cache
uses: actions/cache@v4
with:
path: node_modules
key: yarn-modules-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}-dev
restore-keys: |
yarn-modules-${{ runner.os }}-
- name: Run unit testing
run: make test_unit
build:
runs-on: ubuntu-latest
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.os }}-${{ hashFiles('**/yarn.lock') }}-dev
restore-keys: |
yarn-modules-${{ runner.os }}-
- name: Run build
run: make build
env:
HUSKY: "0"
VITE_RUN_ENVIRONMENT: dev
- name: Upload Build files
uses: actions/upload-artifact@v4
with:
include-hidden-files: true
name: build
path: |
.aws-sam/
dist/
dist_ui/
deploy-test-dev:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
deployments: read
concurrency:
group: ${{ github.event.repository.name }}-dev-env
cancel-in-progress: false
environment: "AWS DEV"
name: Deploy to DEV and Run Live Tests
needs:
- test
- build
steps:
- uses: actions/checkout@v4
env:
HUSKY: "0"
- name: Set up Node for testing
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.os }}-${{ hashFiles('**/yarn.lock') }}-dev
restore-keys: |
yarn-modules-${{ runner.os }}-
- name: Download Build files
uses: actions/download-artifact@v4
with:
name: build
- 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@v4
with:
role-to-assume: arn:aws:iam::427040638965:role/GitHubActionsRole
role-session-name: Core_Dev_Deployment_${{ github.run_id }}
aws-region: us-east-1
- name: Get latest deployment SHA
id: get_last_deploy
uses: actions/github-script@v7
with:
script: |
const deployments = await github.rest.repos.listDeployments({
owner: context.repo.owner,
repo: context.repo.repo,
environment: 'AWS DEV',
per_page: 1
});
if (deployments.data.length > 0) {
return deployments.data[0].sha;
}
return null;
- name: Determine deployment status
id: check_commits
run: |
echo "Last deployed SHA: ${{ steps.get_last_deploy.outputs.result }}"
echo "Current SHA: ${{ github.sha }}"
if [ "${{ steps.get_last_deploy.outputs.result }}" == "${{ github.sha }}" ]; then
echo "This commit is already deployed to AWS DEV. Skipping deployment."
echo "should_deploy=false" >> $GITHUB_OUTPUT
else
echo "New commit detected. Proceeding with deployment."
echo "should_deploy=true" >> $GITHUB_OUTPUT
fi
- name: Publish to AWS
if: steps.check_commits.outputs.should_deploy == 'true'
run: make deploy_dev
env:
HUSKY: "0"
VITE_RUN_ENVIRONMENT: dev
- name: Run health check
run: make dev_health_check
- name: Run post-deploy testing (Live and E2E)
run: make test_post_deploy -j 2
env:
PLAYWRIGHT_USERNAME: ${{ secrets.PLAYWRIGHT_USERNAME }}
PLAYWRIGHT_PASSWORD: ${{ secrets.PLAYWRIGHT_PASSWORD }}
JWT_KEY: ${{ secrets.JWT_KEY }}