docker file #6
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: | | |
chmod +x scripts/docker_compose_up.sh | |
scripts/docker_compose_up.sh | |
working-directory: scripts | |
- 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: | | |
chmod +x scripts/docker_compose_down.sh | |
scripts/docker_compose_down.sh | |
working-directory: scripts | |
Build-Application: | |
name: Build application | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Create Build Environment | |
run: docker compose up -d --no-color --wait | |
working-directory: scripts | |
- name: Install dependencies | |
run: npm install | |
- name: Sleep for 10s | |
run: sleep 10 | |
- name: Create .env file | |
run: touch .env | |
- name: Edit file for running on docker | |
run: echo "RUNNING_ON_DOCKER=true" >> .env | |
- name: Build server | |
run: npm run build | |
- name: Remove Build Environment | |
run: docker compose down |