Compare commits

...

3 Commits

Author SHA1 Message Date
kolaente 3ae134590c ci: make mysql:8 matrix leg blocking
Drop the experimental/continue-on-error gating on the mysql-8 leg so
failures are surfaced directly on the PR. We want to see any
MySQL-8-specific regressions break CI instead of hiding them behind a
soft-fail while we stabilize.

Refs #2589
2026-04-11 18:49:46 +02:00
kolaente 5251554db7 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
2026-04-11 18:13:07 +02:00
kolaente 71e524d7c1 ci: rename 'mysql' matrix leg to 'mariadb' to match reality
The 'mysql' matrix key actually pulls mariadb:12 as its service image
in both test-api and test-migration-smoke. Renaming makes the matrix
identity honest and prepares for a future mysql-8 leg. The underlying
VIKUNJA_DATABASE_TYPE is still 'mysql' because the driver is
wire-compatible with both engines — the matrix name is a CI-side label
only.

No behavioural change.
2026-04-11 18:11:31 +02:00
1 changed files with 25 additions and 9 deletions

View File

@ -101,10 +101,18 @@ jobs:
db:
- sqlite
- postgres
- mysql
- mariadb
- mysql-8
services:
migration-smoke-db-mysql:
image: mariadb:12@sha256:f54db0cb3ccfe9431aba6d08c65a1763c499789b116b4cb651dd7fcf325965b3
migration-smoke-db-mariadb:
image: ${{ matrix.db == 'mariadb' && 'mariadb:12@sha256:f54db0cb3ccfe9431aba6d08c65a1763c499789b116b4cb651dd7fcf325965b3' || '' }}
env:
MYSQL_ROOT_PASSWORD: vikunjatest
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
@ -128,7 +136,7 @@ jobs:
name: vikunja_bin
- name: run migration
env:
VIKUNJA_DATABASE_TYPE: ${{ 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
@ -173,14 +181,22 @@ jobs:
- sqlite-in-memory
- sqlite
- postgres
- mysql
- mariadb
- mysql-8
- paradedb
test:
- feature
- web
services:
db-mysql:
image: ${{ matrix.db == 'mysql' && 'mariadb:12@sha256:5b6a1eac15b85b981a61afb89aea2a22bf76b5f58809d05f0bcc13ab6ec44cb8' || '' }}
db-mariadb:
image: ${{ matrix.db == 'mariadb' && 'mariadb:12@sha256:5b6a1eac15b85b981a61afb89aea2a22bf76b5f58809d05f0bcc13ab6ec44cb8' || '' }}
env:
MYSQL_ROOT_PASSWORD: vikunjatest
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
@ -226,8 +242,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 }}
VIKUNJA_DATABASE_USER: ${{ matrix.db == 'mysql' && '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