-
Notifications
You must be signed in to change notification settings - Fork 5
111 lines (110 loc) · 3.34 KB
/
test-system.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
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