-
Notifications
You must be signed in to change notification settings - Fork 2.1k
131 lines (113 loc) · 3.46 KB
/
integration-tests.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
---
name: CI
on:
push:
branches:
- master
pull_request:
branches:
- master
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
name: CI
strategy:
fail-fast: false
matrix:
node-version: [20.x, 18.x, 16.x]
database-type:
[
postgres,
pgnative,
mysql,
mssql,
sqlite3,
cockroachdb,
better-sqlite3,
oracledb,
]
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Node ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
always-auth: false
node-version: ${{ matrix.node-version }}
- name: Start Database(s)
run: |
docker-compose \
--file "scripts/docker-compose.yml" \
up \
--detach \
--build \
"${{ matrix.database-type }}"
if: matrix.database-type != 'sqlite3' && matrix.database-type != 'better-sqlite3'
- name: Run npm install
run: npm install
- name: Initialize Database(s)
run: |
docker-compose \
--file "scripts/docker-compose.yml" \
up \
"wait${{ matrix.database-type }}"
if: matrix.database-type != 'sqlite3' && matrix.database-type != 'better-sqlite3'
- name: Install pg-native
run: npm i pg-native
if: matrix.database-type == 'pgnative'
- name: Install oracle dependencies
run: ./scripts/oracledb-install-driver-libs.sh run
if: matrix.database-type == 'oracledb'
- run: npm run build
- name: Run Tests
run: npm run test:db
if: matrix.database-type != 'oracledb'
env:
CI: true
DB: ${{ matrix.database-type }}
KNEX_TEST_TIMEOUT: 60000
# This allows for oracle tests to run and fail as part of PR #4889.
# This is a short term fix to allow a merge of CI functionality with
# full test coverage to follow soon after. With full test fix please
# delete this step and remove `if: matrix.database-type != 'oracledb'
# from the step above. -- Ferris (@code-ape)
- name: Run Tests (oracle, allow failing temporarily)
run: npm run test:db || true
if: matrix.database-type == 'oracledb'
env:
CI: true
DB: ${{ matrix.database-type }}
KNEX_TEST_TIMEOUT: 60000
- name: Stop Database(s)
run: |
docker-compose \
--file "scripts/docker-compose.yml" \
down
if: matrix.database-type != 'sqlite3' && matrix.database-type != 'better-sqlite3'
user_experience:
runs-on: ${{ matrix.os }}
name: Test user experience
strategy:
matrix:
node-version: [18.x]
os: ['ubuntu-latest', 'macos-latest', 'windows-latest']
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with: { fetch-depth: 1 }
- name: Setup Node ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
always-auth: false
node-version: ${{ matrix.node-version }}
- name: Test npm git dependency
shell: bash
run: |
mkdir TMP/
echo "{ \"dependencies\": { \"knex\": \"git+file://$(pwd)/\" } }" > TMP/package.json
cd TMP/
npm install --verbose