@@ -29,12 +29,33 @@ jobs:
2929 strategy :
3030 fail-fast : false
3131 matrix :
32- node-version : [16.x, 18.x]
33- mysql-version : ["mysql:8.0.18", "mysql:8.0.22", "mysql:5.7"]
32+ node-version : [16.x, 18.x, 20.x ]
33+ mysql-version : ["mysql:8.0.18", "mysql:8.0.22", "mysql:8.0.33", "mysql: 5.7"]
3434 use-compression : [0]
3535 use-tls : [0]
36+ mysql_connection_url_key : [""]
3637 # TODO - add mariadb to the matrix. currently few tests are broken due to mariadb incompatibilities
3738 include :
39+ # 20.x
40+ - node-version : " 20.x"
41+ mysql-version : " mysql:8.0.33"
42+ use-compression : 1
43+ use-tls : 0
44+ use-builtin-test-runner : 1
45+ - node-version : " 20.x"
46+ mysql-version : " mysql:8.0.33"
47+ use-compression : 0
48+ use-tls : 1
49+ use-builtin-test-runner : 1
50+
51+ # 18.x
52+ # - node-version: "18.x"
53+ # mysql_connection_url_key: "PS_MYSQL_URL"
54+ # filter: "test-select"
55+ # use-compression: 0
56+ # use-tls: 0
57+
58+ # 16.x
3859 - node-version : " 16.x"
3960 mysql-version : " mysql:8.0.18"
4061 use-compression : 1
@@ -47,30 +68,36 @@ jobs:
4768 mysql-version : " mysql:8.0.18"
4869 use-compression : 1
4970 use-tls : 1
71+
72+ # 14.x
5073 - node-version : " 14.x"
5174 mysql-version : " mysql:5.7"
5275 use-compression : 0
5376 use-tls : 0
54- - node-version : " 12.x"
55- mysql-version : " mysql:5.7"
56- use-compression : 0
57- use-tls : 0
58- - filter : " 5.1only"
77+
78+ # filter
79+ - filter : " test-select-1" # a number of tests does not work with mysql 5.1 due to old sql syntax, just testing basic connection
5980 node-version : " 16.x"
6081 mysql-version : " datagrip/mysql:5.1"
6182 use-compression : 0
6283 use-tls : 0
84+ env :
85+ MYSQL_CONNECTION_URL : ${{ secrets[matrix.mysql_connection_url_key] }}
6386
64- name : Node.js ${{ matrix.node-version }} - DB ${{ matrix.mysql-version }} - SSL=${{matrix.use-tls}} Compression=${{matrix.use-compression}}
87+ name : Node.js ${{ matrix.node-version }} - DB ${{ matrix.mysql-version }}${{ matrix.mysql_connection_url_key }} - SSL=${{matrix.use-tls}} Compression=${{matrix.use-compression}}
6588
6689 steps :
6790 - uses : actions/checkout@v3
91+
6892 - name : Set up MySQL
69- run : docker run -d -e MYSQL_ALLOW_EMPTY_PASSWORD=1 -e MYSQL_ROOT_PASSWORD=${{ env.MYSQL_PASSWORD }} -e MYSQL_DATABASE=${{ env.MYSQL_DATABASE }} -v $PWD/mysqldata:/var/lib/mysql/ -v $PWD/examples/custom-conf:/etc/mysql/conf.d -v $PWD/examples/ssl/certs:/certs -p ${{ env.MYSQL_PORT }}:3306 ${{ matrix.mysql-version }}
93+ if : ${{ matrix.mysql-version }}
94+ run : docker run -d -e MYSQL_ALLOW_EMPTY_PASSWORD=1 -e MYSQL_DATABASE=${{ env.MYSQL_DATABASE }} -v $PWD/mysqldata:/var/lib/mysql/ -v $PWD/examples/custom-conf:/etc/mysql/conf.d -v $PWD/examples/ssl/certs:/certs -p ${{ env.MYSQL_PORT }}:3306 ${{ matrix.mysql-version }}
95+
7096 - name : Set up Node.js ${{ matrix.node-version }}
7197 uses : actions/setup-node@v3
7298 with :
7399 node-version : ${{ matrix.node-version }}
100+
74101 - name : Cache dependencies
75102 uses : actions/cache@v3
76103 with :
@@ -80,14 +107,20 @@ jobs:
80107
81108 - name : Install npm dependencies
82109 run : npm ci
110+
83111 - name : Wait mysql server is ready
112+ if : ${{ matrix.mysql-version }}
84113 run : node tools/wait-up.js
85114
86115 - name : Run tests
87116 run : FILTER=${{matrix.filter}} MYSQL_USE_TLS=${{ matrix.use-tls }} MYSQL_USE_COMPRESSION=${{ matrix.use-compression }} npm run coverage-test
88117
89- - run : echo "coverage-artifact-name=`echo -n "${{github.run_id}}-${{ matrix.node-version }}-${{ matrix.mysql-version }}-${{matrix.use-tls}}-${{matrix.use-compression}}" | shasum | cut -d " " -f 1`" >> $GITHUB_ENV
90- - uses : actions/upload-artifact@v2
118+ - name : Run tests with built-in node test runner
119+ if : ${{ matrix.use-builtin-test-runner }}
120+ run : FILTER=${{matrix.filter}} MYSQL_USE_TLS=${{ matrix.use-tls }} MYSQL_USE_COMPRESSION=${{ matrix.use-compression }} npm run test:builtin-node-runner
121+
122+ - run : echo "coverage-artifact-name=`echo -n "${{github.run_id}}-${{ matrix.node-version }}-${{ matrix.mysql-version }}-{${{ matrix.mysql_connection_url_key }}-${{matrix.use-tls}}-${{matrix.use-compression}}" | shasum | cut -d " " -f 1`" >> $GITHUB_ENV
123+ - uses : actions/upload-artifact@v3
91124 with :
92125 name : coverage-${{env.coverage-artifact-name}}
93126 path : coverage/cobertura-coverage.xml
0 commit comments