Merge pull request #41 from xenosf/test-cases #97
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: 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 |