forked from TrafficGuard/typedai
-
Notifications
You must be signed in to change notification settings - Fork 2
132 lines (121 loc) · 3.38 KB
/
ci.yml
File metadata and controls
132 lines (121 loc) · 3.38 KB
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: CI
on:
pull_request:
branches: [ main ]
push:
branches: [ main ]
jobs:
unit-tests:
name: Backend (Unit Tests)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
with:
version: 10
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: '20.x'
cache: 'pnpm'
- name: Install dependencies (server)
run: pnpm install
- name: Install biome linux-x64 (server)
run: pnpm install --save-dev @biomejs/cli-linux-x64 || true
- name: Lint (server)
run: pnpm run lint:ci
- name: Run unit tests (server)
run: pnpm run test:unit
db-tests-firestore:
name: Database tests (firestore)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
with:
version: 10
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: '20.x'
cache: 'pnpm'
- name: Install dependencies (server)
run: pnpm install
- name: Run database tests (server)
run: pnpm run test:ci:firestore
db-tests-postgres:
name: Database tests (postgres)
runs-on: ubuntu-latest
services:
postgres:
image: postgres:15-alpine
env:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: test
ports:
- 5432:5432
options: >-
--health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
with:
version: 10
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: '20.x'
cache: 'pnpm'
- name: Install dependencies (server)
run: pnpm install
- name: Run database tests (server)
run: npm run test:ci:postgres
db-tests-mongo:
name: Database tests (mongo)
runs-on: ubuntu-latest
services:
mongo:
image: mongo:6
ports:
- 27017:27017
options: >-
--health-cmd "mongosh --eval 'db.runCommand({serverStatus:1})' --quiet" --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
with:
version: 10
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: '20.x'
cache: 'pnpm'
- name: Install dependencies (server)
run: pnpm install
- name: Run database tests (server)
run: npm run test:ci:mongo
frontend:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
with:
version: 10
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: '20.x'
cache: 'pnpm'
- name: Install root dependencies
run: pnpm install
- name: Install dependencies (frontend)
working-directory: ./frontend
run: pnpm install
- name: Install Chrome
uses: browser-actions/setup-chrome@latest
- name: Run tests (frontend)
working-directory: ./frontend
run: pnpm run test:ci
env:
CHROME_BIN: /usr/bin/google-chrome-stable