-
Notifications
You must be signed in to change notification settings - Fork 163
146 lines (127 loc) · 3.23 KB
/
ci-fast-test.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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
name: CI Fast (test)
on:
push:
branches:
- main
pull_request:
jobs:
test-core:
runs-on: ubuntu-latest-8-cores
steps:
- uses: actions/checkout@v3
- name: Set up Rust
uses: moonrepo/setup-rust@v1
with:
components: clippy, llvm-tools-preview
cache: false
channel: 'nightly'
- name: install grcov
run: if ! which grcov; then cargo install grcov; fi
- name: Build Rust
env:
RUSTFLAGS: -Cinstrument-coverage
run: |
cd quadratic-core
cargo build
- name: Test
env:
LLVM_PROFILE_FILE: grcov-%p-%m.profraw
RUSTFLAGS: -Cinstrument-coverage
run: |
cd quadratic-core
cargo test
- name: Generate coverage
run: |
grcov $(find . -name "grcov-*.profraw" -print) \
--branch \
--ignore-not-existing \
--binary-path ./quadratic-core/target/debug/ \
-s . \
-t lcov \
--ignore "/*" \
--ignore "./quadratic-core/src/wasm_bindings/*" \
--ignore "./quadratic-core/src/bin/*" \
-o lcov.info
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
test-client-unit:
runs-on: ubuntu-latest-8-cores
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v4
with:
node-version: 18
- name: Run npm test:ci in quadratic-client
run: |
cd quadratic-client
npm install
npm run test:unit
test-client-python:
runs-on: ubuntu-latest-8-cores
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v4
with:
node-version: 18
- uses: actions/setup-python@v4
with:
python-version: '3.9'
cache: 'pip'
- name: Test python
run: |
pip install -r requirements.txt
cd quadratic-client
npm run test:python
test-api-unit:
runs-on: ubuntu-latest-8-cores
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v4
with:
node-version: 18
- name: Run npm test:ci in quadratic-client
run: |
cd quadratic-api
npm install
npm run docker:test:ci
lint-rust:
runs-on: ubuntu-latest-8-cores
steps:
- uses: actions/checkout@v3
- name: Set up Rust
uses: moonrepo/setup-rust@v1
with:
components: clippy
cache: false
- name: Run cargo clippy in quadratic-core
run: |
cd quadratic-core
cargo clippy -- -D warnings
lint-client:
runs-on: ubuntu-latest-8-cores
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v4
with:
node-version: 18
- name: Set up Rust
uses: moonrepo/setup-rust@v1
with:
cache: false
- uses: jetli/[email protected]
with:
version: 'latest'
- name: Build wasm core
run: |
cd quadratic-client
npm run build:wasm:javascript
npm run build:wasm:types
- name: Lint quadratic-client
run: |
cd quadratic-client
npm install
npm run lint:prettier
npm run lint:eslint
npm run lint:ts