Skip to content

wokflow edited

wokflow edited #15

Workflow file for this run

name: Pull Request Workflow
on:
push:
branches: [ "develop" ]
pull_request:
branches: [ "develop" ]
jobs:
CODE-QUALITY-CHECK:
name: Check for formatting and circular dependencies
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.x]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Restore node_modules from cache
uses: actions/cache@v2
with:
path: |
~/.npm
node_modules
key: ${{ runner.os }}-code-quality-checks-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-code-quality-checks-
- name: Install dependencies
run: npm install
- name: Sleep for 10s
run: sleep 10
- name: Check formatting
run: npm run format:check
- name: Check Circular Dependencies
run: npx madge --circular --extensions ts ./
Check-Unauthorized-Changes:
name: Checks if no unauthorized files are changed
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 2
persist-credentials: true
- name: Get Changed Unauthorized files
id: changed-unauth-files
uses: tj-actions/changed-files@v44
with:
files: |
.github/**
.husky/**
scripts/**
.env.sample
.dockerignore
.node-version
tsconfig.json
.gitignore
.eslintrc.json
.eslintignore
.prettierrc.json
.prettierignore
vite.config.ts
docker-compose.yaml
src/main.ts
- name: List all changed unauthorized files
if: steps.changed-unauth-files.outputs.any_changed == 'true' || steps.changed-unauth-files.outputs.any_deleted == 'true'
run: |
echo "${{ steps.changed-unauth-files.outputs.all_changed_files }} is unauthorized to change/delete"
exit 1
Test-Application:
name: Run e2e tests
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Create Testing Environment
run: docker compose up -d --no-color --wait
working-directory: test
- name: Install dependencies
run: npm install
- name: Sleep for 10s
run: sleep 10
- name: Run tests
run: npm run test:e2e
- name: Remove Testing Environment
run: docker compose down
working-directory: test
Build-Application:
name: Build application
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Create .env file
run: touch .env
- name: Edit file for running on docker
run: echo "RUNNING_ON_DOCKER=true" >> .env
- name: Create Docker network
run: docker network create hi-services
- name: Start Build services
run: docker compose up -d --no-color --wait
- name: Start Docker server
run: docker compose -f server-docker-compose.yaml up -d --no-color --wait
- name: Check server health
run: |
chmod +x server-health.sh
./server-health.sh
working-directory: scripts
- name: Remove Build Services
run: docker compose down
- name: Stop server
run: docker compose -f server-docker-compose.yaml down
- name: Remove docker image
run: docker rmi hi_server-web