-
Notifications
You must be signed in to change notification settings - Fork 206
131 lines (113 loc) · 3.58 KB
/
Copy pathtest.yml
File metadata and controls
131 lines (113 loc) · 3.58 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
name: Unit and Integration Tests for Apache Cassandra NodeJS Driver
on:
push:
pull_request:
workflow_dispatch: # allow manual trigger from Actions page
permissions:
contents: read
actions: read
checks: write
jobs:
eslint:
name: Run eslint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
- run: npm install -g eslint@4
- run: npm run eslint
typescript:
name: TypeScript generation and compilation tests
runs-on: ubuntu-latest
strategy:
matrix:
NODE_VERSION: ["20", "22", "24"]
TSC_VERSION: ["4.9", "5.9", "6.0"]
fail-fast: false
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.NODE_VERSION }}
cache: "npm"
- run: npm ci
- run: npm install typescript@${{ matrix.TSC_VERSION }} --no-save
- run: |
pushd test/unit/typescript/
npx tsc
node -e "require('./api-generation-test').generate()" > generated.ts
npx tsc --noEmit
bun-unit-tests:
name: Unit tests on Bun
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-bun
- run: bun install
- run: bunx mocha test/unit --recursive -R spec -t 5000
deno-unit-tests:
name: Unit tests on Deno
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-deno
# --allow-scripts runs lifecycle scripts so the kerberos prebuild is fetched.
- run: deno install --allow-scripts=npm:kerberos
- run: deno run -A --unstable-detect-cjs npm:mocha@10.8.2 test/unit --recursive -R spec -t 5000
unit-integration-tests:
runs-on: ubuntu-latest
strategy:
matrix:
NODE_VERSION: ["20", "22", "24"]
SERVER_VERSION: ["3.11", "4.0", "4.1", "5.0"] # Cassandra minor versions
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up CCM
uses: ./.github/actions/setup-ccm
with:
server-version: ${{ matrix.SERVER_VERSION }}
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.NODE_VERSION }}
cache: "npm"
- name: Run tests
run: |
npm ci
npm install --no-save mocha-multi-reporters mocha-junit-reporter
echo '{
"reporterEnabled": "spec, mocha-junit-reporter",
"mochaJunitReporterReporterOptions": {
"mochaFile": "test-results/results.xml"
}
}' > config.json
npx mocha test/unit test/integration/short --recursive --exit --reporter mocha-multi-reporters \
--reporter-options configFile=config.json
- name: Upload Test Results
if: (!cancelled())
uses: actions/upload-artifact@v4
with:
name: Test Results (Node.js ${{ matrix.NODE_VERSION }}, Cassandra ${{ matrix.SERVER_VERSION }})
path: test-results/**/*
publish-test-results:
name: "Publish Tests Results"
needs: unit-integration-tests
runs-on: ubuntu-latest
permissions:
checks: write
pull-requests: write
if: (!cancelled())
steps:
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action@v2
with:
files: artifacts/**/*.xml