Skip to content

Merge pull request #41 from xenosf/test-cases #97

Merge pull request #41 from xenosf/test-cases

Merge pull request #41 from xenosf/test-cases #97

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 }}
DB_URI: mongodb://172.17.0.1:27017/
DB_URI_QUESTION: mongodb://172.17.0.1:27017/question
DB_URI_USER: mongodb://172.17.0.1:27017/user
NODE_OPTIONS: --max-old-space-size=4096
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: TEST
envkey_PORT_USER: 3001
envkey_PORT_QUESTION: 3002
envkey_PORT_MATCHING: 3003
envkey_PORT_COLLABORATION: 3004
envkey_PORT_AI: 3005
envkey_PORT_CHAT: 3006
envkey_GEMINI_API_KEY: ''
envkey_DB_URI_QUESTION: ${{ env.DB_URI_QUESTION }}
envkey_DB_URI_USER: ${{ env.DB_URI_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 build
docker compose up -d
- name: Setup & run client
run: |
cd client
npm ci
npm run start &
- name: List listening ports & running containers
run: |
sudo netstat -tunlp
docker ps
- name: Run Tests
uses: nick-fields/retry@v3
with:
timeout_minutes: 15
max_attempts: 3
retry_on: error
command: xvfb-run --server-args="-screen 0 1024x768x24" npm run test
# - name: Setup tmate session # UNCOMMENT TO BE ABLE TO SSH IN AND DEBUG
# if: ${{ failure() }}
# uses: mxschmitt/action-tmate@v3
# timeout-minutes: 10
- name: Print user service logs
if: ${{ failure() }}
run: docker logs server-user-service-1
- name: Print question service logs
if: ${{ failure() }}
run: docker logs server-qn-service-1
- name: Print collab service logs
if: ${{ failure() }}
run: docker logs server-collab-service-1
- name: Print matching service logs
if: ${{ failure() }}
run: docker logs server-match-service-1
- name: Print AI service logs
if: ${{ failure() }}
run: docker logs server-ai-service-1
- name: Print chat service logs
if: ${{ failure() }}
run: docker logs server-chat-service-1
- name: List listening ports & running containers
if: ${{ failure() }}
run: |
sudo netstat -tunlp
docker ps