@@ -3,7 +3,7 @@ name: CI - Linux
33on :
44 pull_request :
55 push :
6- branches : [ main ]
6+ branches : [main]
77
88 workflow_dispatch :
99
@@ -18,12 +18,14 @@ jobs:
1818 strategy :
1919 fail-fast : false
2020 matrix :
21- node-version : [14.x, 16.x, 18.x , 20.x, "21.x" ]
22- mysql-version : [" mysql:8.0.33" ]
21+ node-version : [18 , 20, 22, 23 ]
22+ mysql-version : [' mysql:8.3' ]
2323 use-compression : [0, 1]
2424 use-tls : [0, 1]
25- mysql_connection_url_key : [""]
25+ mysql_connection_url_key : ['']
26+ # static-parser: [0, 1] # Already tested in "ci-coverage"
2627 # TODO - add mariadb to the matrix. currently few tests are broken due to mariadb incompatibilities
28+
2729 env :
2830 MYSQL_CONNECTION_URL : ${{ secrets[matrix.mysql_connection_url_key] }}
2931
@@ -57,18 +59,23 @@ jobs:
5759
5860 - name : Run tests
5961 run : FILTER=${{matrix.filter}} MYSQL_USE_TLS=${{ matrix.use-tls }} MYSQL_USE_COMPRESSION=${{ matrix.use-compression }} npm run test
62+ timeout-minutes : 10
6063
6164 tests-linux-bun :
6265 runs-on : ubuntu-latest
6366 strategy :
6467 fail-fast : false
6568 matrix :
6669 bun-version : [latest, canary]
67- mysql-version : [" mysql:8.0.33" ]
70+ mysql-version : [' mysql:8.3' ]
6871 use-compression : [0, 1]
69- use-tls : [0,1]
72+ use-tls : [0, 1]
73+ static-parser : [0, 1]
74+
75+ env :
76+ STATIC_PARSER : ${{ matrix.static-parser }}
7077
71- name : Bun ${{ matrix.bun-version }} - DB ${{ matrix.mysql-version }} - SSL=${{matrix.use-tls}} Compression=${{matrix.use-compression}}
78+ name : Bun ${{ matrix.bun-version }} - DB ${{ matrix.mysql-version }} - SSL=${{matrix.use-tls}} Compression=${{matrix.use-compression}} Static Parser=${{matrix.static-parser}}
7279
7380 steps :
7481 - uses : actions/checkout@v4
@@ -107,4 +114,120 @@ jobs:
107114 MYSQL_USE_TLS : ${{ matrix.use-tls }}
108115 FILTER : test-select-1|test-select-ssl
109116 run : bun run test:bun
110- timeout-minutes : 1
117+ timeout-minutes : 10
118+
119+ tests-linux-deno-v1 :
120+ runs-on : ubuntu-latest
121+ strategy :
122+ fail-fast : false
123+ matrix :
124+ deno-version : [v1.x]
125+ mysql-version : ['mysql:8.3']
126+ use-compression : [0, 1]
127+ static-parser : [0, 1]
128+ # TODO: investigate error when using SSL (1)
129+ #
130+ # errno: -4094
131+ # code: "UNKNOWN"
132+ # syscall: "read"
133+ use-tls : [0]
134+
135+ env :
136+ STATIC_PARSER : ${{ matrix.static-parser }}
137+
138+ name : Deno ${{ matrix.deno-version }} - DB ${{ matrix.mysql-version }} - SSL=${{matrix.use-tls}} Compression=${{matrix.use-compression}} Static Parser=${{matrix.static-parser}}
139+
140+ steps :
141+ - uses : actions/checkout@v4
142+ - name : Set up MySQL
143+ run : docker run -d -e MYSQL_ALLOW_EMPTY_PASSWORD=1 -e MYSQL_DATABASE=${{ env.MYSQL_DATABASE }} -v $PWD/mysqldata:/var/lib/mysql/ -v $PWD/test/fixtures/custom-conf:/etc/mysql/conf.d -v $PWD/test/fixtures/ssl/certs:/certs -p ${{ env.MYSQL_PORT }}:3306 ${{ matrix.mysql-version }}
144+
145+ - name : Set up Deno ${{ matrix.deno-version }}
146+ uses : denoland/setup-deno@v1
147+ with :
148+ deno-version : ${{ matrix.deno-version }}
149+
150+ - name : Set up Node.js
151+ uses : actions/setup-node@v4
152+ with :
153+ node-version : 20
154+ - name : Cache dependencies
155+ uses : actions/cache@v4
156+ with :
157+ path : ~/.npm
158+ key : npm-linux-${{ hashFiles('package-lock.json') }}
159+ restore-keys : npm-linux-
160+
161+ - name : Install npm dependencies
162+ run : npm ci
163+
164+ - name : Wait mysql server is ready
165+ run : node tools/wait-up.js
166+
167+ - name : run tests
168+ env :
169+ MYSQL_USER : ${{ env.MYSQL_USER }}
170+ MYSQL_DATABASE : ${{ env.MYSQL_DATABASE }}
171+ MYSQL_PORT : ${{ env.MYSQL_PORT }}
172+ MYSQL_USE_COMPRESSION : ${{ matrix.use-compression }}
173+ MYSQL_USE_TLS : ${{ matrix.use-tls }}
174+ run : deno task test:deno -- --denoCjs='.js,.cjs'
175+ timeout-minutes : 10
176+
177+ tests-linux-deno-v2 :
178+ runs-on : ubuntu-latest
179+ strategy :
180+ fail-fast : false
181+ matrix :
182+ deno-version : [v2.x, canary]
183+ mysql-version : ['mysql:8.3']
184+ use-compression : [0, 1]
185+ static-parser : [0, 1]
186+ # TODO: investigate error when using SSL (1)
187+ #
188+ # errno: -4094
189+ # code: "UNKNOWN"
190+ # syscall: "read"
191+ use-tls : [0]
192+
193+ env :
194+ STATIC_PARSER : ${{ matrix.static-parser }}
195+
196+ name : Deno ${{ matrix.deno-version }} - DB ${{ matrix.mysql-version }} - SSL=${{matrix.use-tls}} Compression=${{matrix.use-compression}} Static Parser=${{matrix.static-parser}}
197+
198+ steps :
199+ - uses : actions/checkout@v4
200+ - name : Set up MySQL
201+ run : docker run -d -e MYSQL_ALLOW_EMPTY_PASSWORD=1 -e MYSQL_DATABASE=${{ env.MYSQL_DATABASE }} -v $PWD/mysqldata:/var/lib/mysql/ -v $PWD/test/fixtures/custom-conf:/etc/mysql/conf.d -v $PWD/test/fixtures/ssl/certs:/certs -p ${{ env.MYSQL_PORT }}:3306 ${{ matrix.mysql-version }}
202+
203+ - name : Set up Deno ${{ matrix.deno-version }}
204+ uses : denoland/setup-deno@v1
205+ with :
206+ deno-version : ${{ matrix.deno-version }}
207+
208+ - name : Set up Node.js
209+ uses : actions/setup-node@v4
210+ with :
211+ node-version : 22
212+ - name : Cache dependencies
213+ uses : actions/cache@v4
214+ with :
215+ path : ~/.npm
216+ key : npm-linux-${{ hashFiles('package-lock.json') }}
217+ restore-keys : npm-linux-
218+
219+ - name : Install npm dependencies
220+ run : npm ci
221+
222+ - name : Wait mysql server is ready
223+ run : node tools/wait-up.js
224+
225+ - name : run tests
226+ env :
227+ MYSQL_USER : ${{ env.MYSQL_USER }}
228+ MYSQL_DATABASE : ${{ env.MYSQL_DATABASE }}
229+ MYSQL_PORT : ${{ env.MYSQL_PORT }}
230+ MYSQL_USE_COMPRESSION : ${{ matrix.use-compression }}
231+ MYSQL_USE_TLS : ${{ matrix.use-tls }}
232+ run : deno task test:deno
233+ timeout-minutes : 10
0 commit comments