-
Notifications
You must be signed in to change notification settings - Fork 121
141 lines (134 loc) · 3.85 KB
/
npm-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
name: NPM test
on:
workflow_call:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.0
- uses: actions/setup-node@v3
with:
node-version: '16.x'
- run: npm ci --ignore-scripts
- run: npm run lint
test-unit:
# Run unit tests on windows and linux
runs-on: ${{ matrix.operating-system }}
strategy:
matrix:
operating-system:
- ubuntu-latest
- windows-latest
node-version:
- '18.0'
- '18.x'
- '20.0'
- '20.x'
timeout-minutes: 15
steps:
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Ensure line endings are consistent
run: git config --global core.autocrlf input
- name: Check out repository
uses: actions/checkout@v4.1.0
- name: Install dependencies and run build scripts
run: npm ci
- name: Type-check tests
run: npm run test:ts
- name: Run unit tests
run: npm run test:unit
- name: Submit unit test coverage
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.github_token }}
flag-name: test-unit-${{ matrix.node-version }}-${{ matrix.operating-system }}
parallel: true
test-integration:
# Run integration tests on linux (full suite, with external dependencies)
runs-on: ubuntu-latest
strategy:
matrix:
node-version:
- '18.x'
- '20.x'
env:
TEST_DOCKER: true
services:
sparql-endpoint:
image: tenforce/virtuoso
env:
SPARQL_UPDATE: true
ports:
- 4000:8890
redis:
image: redis
ports:
- 6379:6379
timeout-minutes: 20
steps:
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Check out repository
uses: actions/checkout@v4.1.0
- name: Install dependencies and run build scripts
run: npm ci
- name: Run integration tests
run: npm run test:integration
test-integration-windows:
# Run integration tests on windows (no external dependencies)
runs-on: windows-latest
strategy:
matrix:
node-version:
- '18.x'
- '20.x'
timeout-minutes: 20
steps:
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Ensure line endings are consistent
run: git config --global core.autocrlf input
- name: Check out repository
uses: actions/checkout@v4.1.0
- name: Install dependencies and run build scripts
run: npm ci
- name: Run integration tests
run: npm run test:integration
test-configs:
# Test startup of CSS with all configs inside the config/ folder
runs-on: ubuntu-latest
services:
sparql-endpoint:
image: tenforce/virtuoso
env:
SPARQL_UPDATE: true
ports:
- 4000:8890
steps:
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: '16.x'
- name: Check out repository
uses: actions/checkout@v4.1.0
- name: Install dependencies and run build scripts
run: npm ci
- name: Run deploy tests
run: npm run test:deploy
coveralls:
# Consolidate test coverage reports from all unit tests
needs: test-unit
runs-on: ubuntu-latest
steps:
- name: Consolidate test coverage from different jobs
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.github_token }}
parallel-finished: true