ci: add non-blocking mysql:8 leg to test-api and test-migration-smoke
Adds a real mysql:8 service container alongside the existing mariadb:12 leg so MySQL-specific strict parsing regressions (like #2589) are caught in CI. The leg is marked continue-on-error for now (via a matrix include that sets `experimental: true`) so surprise MySQL-8-only failures don't block unrelated PRs during the triage window. Once green on main for two weeks it will be flipped to blocking. The digest for mysql:8 was resolved from Docker Hub's registry API (sha256:da906917ca4ace3ba55538b7c2ee97a9bc865ef14a4b6920b021f0249d603f3d). VIKUNJA_DATABASE_TYPE is set to 'mysql' for the new leg because Vikunja's driver (go-sql-driver/mysql v1.9.3, which supports caching_sha2_password) is wire-compatible with both engines — the matrix name is a CI-side label only. Refs #2589
This commit is contained in:
parent
71e524d7c1
commit
5251554db7
|
|
@ -96,12 +96,17 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- api-build
|
||||
continue-on-error: ${{ matrix.experimental == true }}
|
||||
strategy:
|
||||
matrix:
|
||||
db:
|
||||
- sqlite
|
||||
- postgres
|
||||
- mariadb
|
||||
- mysql-8
|
||||
include:
|
||||
- db: mysql-8
|
||||
experimental: true
|
||||
services:
|
||||
migration-smoke-db-mariadb:
|
||||
image: ${{ matrix.db == 'mariadb' && 'mariadb:12@sha256:f54db0cb3ccfe9431aba6d08c65a1763c499789b116b4cb651dd7fcf325965b3' || '' }}
|
||||
|
|
@ -110,6 +115,13 @@ jobs:
|
|||
MYSQL_DATABASE: vikunjatest
|
||||
ports:
|
||||
- 3306:3306
|
||||
migration-smoke-db-mysql-8:
|
||||
image: ${{ matrix.db == 'mysql-8' && 'mysql:8@sha256:da906917ca4ace3ba55538b7c2ee97a9bc865ef14a4b6920b021f0249d603f3d' || '' }}
|
||||
env:
|
||||
MYSQL_ROOT_PASSWORD: vikunjatest
|
||||
MYSQL_DATABASE: vikunjatest
|
||||
ports:
|
||||
- 3306:3306
|
||||
migration-smoke-db-postgres:
|
||||
image: postgres:18@sha256:5773fe724c49c42a7a9ca70202e11e1dff21fb7235b335a73f39297d200b73a2
|
||||
env:
|
||||
|
|
@ -128,7 +140,7 @@ jobs:
|
|||
name: vikunja_bin
|
||||
- name: run migration
|
||||
env:
|
||||
VIKUNJA_DATABASE_TYPE: ${{ matrix.db == 'mariadb' && 'mysql' || matrix.db }}
|
||||
VIKUNJA_DATABASE_TYPE: ${{ (matrix.db == 'mariadb' || matrix.db == 'mysql-8') && 'mysql' || matrix.db }}
|
||||
VIKUNJA_DATABASE_PATH: ./vikunja-migration-test.db
|
||||
VIKUNJA_DATABASE_USER: ${{ matrix.db == 'postgres' && 'postgres' || 'root' }}
|
||||
VIKUNJA_DATABASE_PASSWORD: vikunjatest
|
||||
|
|
@ -167,6 +179,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- mage
|
||||
continue-on-error: ${{ matrix.experimental == true }}
|
||||
strategy:
|
||||
matrix:
|
||||
db:
|
||||
|
|
@ -174,10 +187,14 @@ jobs:
|
|||
- sqlite
|
||||
- postgres
|
||||
- mariadb
|
||||
- mysql-8
|
||||
- paradedb
|
||||
test:
|
||||
- feature
|
||||
- web
|
||||
include:
|
||||
- db: mysql-8
|
||||
experimental: true
|
||||
services:
|
||||
db-mariadb:
|
||||
image: ${{ matrix.db == 'mariadb' && 'mariadb:12@sha256:5b6a1eac15b85b981a61afb89aea2a22bf76b5f58809d05f0bcc13ab6ec44cb8' || '' }}
|
||||
|
|
@ -186,6 +203,13 @@ jobs:
|
|||
MYSQL_DATABASE: vikunjatest
|
||||
ports:
|
||||
- 3306:3306
|
||||
db-mysql-8:
|
||||
image: ${{ matrix.db == 'mysql-8' && 'mysql:8@sha256:da906917ca4ace3ba55538b7c2ee97a9bc865ef14a4b6920b021f0249d603f3d' || '' }}
|
||||
env:
|
||||
MYSQL_ROOT_PASSWORD: vikunjatest
|
||||
MYSQL_DATABASE: vikunjatest
|
||||
ports:
|
||||
- 3306:3306
|
||||
db-postgres:
|
||||
image: ${{ matrix.db == 'postgres' && 'postgres:18@sha256:073e7c8b84e2197f94c8083634640ab37105effe1bc853ca4d5fbece3219b0e8' || '' }}
|
||||
env:
|
||||
|
|
@ -226,8 +250,8 @@ jobs:
|
|||
- name: test
|
||||
env:
|
||||
VIKUNJA_TESTS_USE_CONFIG: ${{ matrix.db != 'sqlite-in-memory' && 1 || 0 }}
|
||||
VIKUNJA_DATABASE_TYPE: ${{ (matrix.db == 'paradedb' && 'postgres') || (matrix.db == 'mariadb' && 'mysql') || matrix.db }}
|
||||
VIKUNJA_DATABASE_USER: ${{ matrix.db == 'mariadb' && 'root' || 'postgres' }}
|
||||
VIKUNJA_DATABASE_TYPE: ${{ (matrix.db == 'paradedb' && 'postgres') || ((matrix.db == 'mariadb' || matrix.db == 'mysql-8') && 'mysql') || matrix.db }}
|
||||
VIKUNJA_DATABASE_USER: ${{ (matrix.db == 'mariadb' || matrix.db == 'mysql-8') && 'root' || 'postgres' }}
|
||||
VIKUNJA_DATABASE_PASSWORD: vikunjatest
|
||||
VIKUNJA_DATABASE_DATABASE: vikunjatest
|
||||
VIKUNJA_DATABASE_SSLMODE: disable
|
||||
|
|
|
|||
Loading…
Reference in New Issue