Skip to content

Add CI workflows (testing & linting) #5

Add CI workflows (testing & linting)

Add CI workflows (testing & linting) #5

Workflow file for this run

name: System Testing
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
system:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
browser: [firefox, chrome]
runs-on: ${{ matrix.os }}
env:
BROWSER: ${{ matrix.browser }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: '0'
- uses: actions/setup-node@v4
with:
node-version: 18
- name: Install Outer Folder Dependencies
run: |
npm ci
- name: Make client envfile
uses: SpicyPizza/create-envfile@v2.0
with:
envkey_REACT_APP_API_BASE_URL: http://localhost
directory: client
file_name: .env
fail_on_empty: false
sort_keys: false
- name: Make server envfile
uses: SpicyPizza/create-envfile@v2.0
with:
envkey_ENV: PROD
envkey_PORT_USER: 3001
envkey_PORT_QUESTION: 3002
envkey_PORT_MATCHING: 3003
envkey_DB_URI_QUESTION: mongodb://localhost:27017/question
envkey_DB_URI_USER: mongodb://localhost:27017/user
envkey_JWT_SECRET: secret
directory: server
file_name: .env
fail_on_empty: false
sort_keys: false
- name: Start MongoDB
uses: supercharge/mongodb-github-action@1.11.0
with:
mongodb-version: latest
- name: Setup & run server
run: |
cd server
docker compose -f docker-compose.local.yml build
docker compose -f docker-compose.local.yml up -d
- name: Setup & build client
run: |
cd client
npm ci
npm run build
- name: Run Tests
run: xvfb-run --server-args="-screen 0 1024x768x24" npm run test