Merge pull request #58 from Manik2708/deployment-stage #19
This file contains 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: 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 |