@@ -108,3 +108,53 @@ jobs:
108108 FILTER : test-select-1|test-select-ssl
109109 run : bun run test:bun
110110 timeout-minutes : 1
111+
112+ tests-linux-deno :
113+ runs-on : ubuntu-latest
114+ strategy :
115+ fail-fast : false
116+ matrix :
117+ deno-version : [v1.43.6, canary]
118+ mysql-version : ["mysql:8.0.33"]
119+ use-compression : [0, 1]
120+ use-tls : [0,1]
121+
122+ name : Deno ${{ matrix.deno-version }} - DB ${{ matrix.mysql-version }} - SSL=${{matrix.use-tls}} Compression=${{matrix.use-compression}}
123+
124+ steps :
125+ - uses : actions/checkout@v4
126+ - name : Set up MySQL
127+ 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 }}
128+
129+ - name : Set up Deno ${{ matrix.deno-version }}
130+ uses : denoland/setup-deno@v1
131+ with :
132+ deno-version : ${{ matrix.deno-version }}
133+
134+ - name : Set up Node.js
135+ uses : actions/setup-node@v4
136+ with :
137+ node-version : 20
138+ - name : Cache dependencies
139+ uses : actions/cache@v4
140+ with :
141+ path : ~/.npm
142+ key : npm-linux-${{ hashFiles('package-lock.json') }}
143+ restore-keys : npm-linux-
144+
145+ - name : Install npm dependencies
146+ run : npm ci
147+
148+ - name : Wait mysql server is ready
149+ run : node tools/wait-up.js
150+
151+ # todo: check what we need to do to run all tests with deno
152+ - name : run tests
153+ env :
154+ MYSQL_USER : ${{ env.MYSQL_USER }}
155+ MYSQL_DATABASE : ${{ env.MYSQL_DATABASE }}
156+ MYSQL_PORT : ${{ env.MYSQL_PORT }}
157+ MYSQL_USE_COMPRESSION : ${{ matrix.use-compression }}
158+ MYSQL_USE_TLS : ${{ matrix.use-tls }}
159+ run : deno test --allow-net --allow-env --allow-read test/deno.ts
160+ timeout-minutes : 1
0 commit comments