Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,11 @@ jobs:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
# MariaDB functional leg (one cell): keeps the MySQL-only branches —
# ke_search MATCH...AGAINST retrieval — permanently exercised in CI.
# mariadb:10.11 LTS: images >= 11 ship only mariadb-admin, which fails
# the reusable workflow's hardcoded mysqladmin health check.
# mariadb:11.8 — one of the two current LTS series (11.8, 12.3); the e2e
# leg runs the other, so CI covers both. This sat on 10.11 because images
# >= 11 ship only mariadb-admin while the reusable workflow health-checked
# with a hardcoded mysqladmin, so the service never turned healthy
# (netresearch/typo3-ci-workflows#128, fixed there in #174).
# The full matrix above stays on SQLite; this narrow second call exists ONLY
# for the MariaDB functional leg.
ci-functional-mariadb:
Expand All @@ -112,7 +115,7 @@ jobs:
typo3-versions: '["^14.3"]'
run-functional-tests: true
functional-test-db: mariadb
db-image: 'mariadb:10.11'
db-image: 'mariadb:11.8'
# Shard by test class here too. With the SQLite cells down to ~2.5min this
# leg became the single longest job in CI at 6min, i.e. the whole
# critical-path term of the wall clock.
Expand All @@ -122,7 +125,7 @@ jobs:
# identifier — $originalDatabaseName . '_ft' . substr(sha1(static::class), 0, 7)
# (FunctionalTestCase.php:361) — so each process creates its OWN database
# (typo3_test_ft<hash>). No CREATE race, no shared state, and 4 processes
# are nowhere near mariadb:10.11's default max_connections of 151.
# are nowhere near mariadb:11.8's default max_connections of 151.
#
# No event split: this leg never uploaded coverage (upload-coverage is
# unset here, so the reusable resolves coverage: none). It exists purely to
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@ jobs:
contents: read
with:
php-version: '8.5'
db-image: 'mariadb:12.2'
# 12.3, not 12.2: 12.0-12.2 are rolling releases, 12.3 is the LTS of
# the 12 series (and the only 12.x still built — 12.2 stopped in May).
db-image: 'mariadb:12.3'
# Seed WAITING_FOR_APPROVAL/INPUT runs before Playwright so the a11y
# suite can exercise the approve/deny + schema-input forms (ADR-109).
# Default-mode override: the workflow sets up TYPO3 and starts the
Expand Down
38 changes: 33 additions & 5 deletions Build/Scripts/runTests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -82,10 +82,38 @@ handle_dbms_options() {
echo "Invalid combination -d ${DBMS} -a ${DATABASE_DRIVER}" >&2
exit 1
fi
[[ -z "${DBMS_VERSION}" ]] && DBMS_VERSION="11.4"
if ! [[ ${DBMS_VERSION} =~ ^(10.5|10.6|10.11|11.0|11.4)$ ]]; then
echo "Invalid combination -d ${DBMS} -i ${DBMS_VERSION}" >&2
exit 1
[[ -z "${DBMS_VERSION}" ]] && DBMS_VERSION="11.8"
# The MariaDB series still in community support (mariadb.org
# maintenance policy): 10.11 until 2028-02, 11.4 until 2029-05,
# 11.8 until 2028-06, 12.3 until 2029-06. 10.5, 10.6 and 11.0 are
# EOL; 12.0-12.2 are rolling releases, not LTS.
#
# A version that has left support is mapped onto the LTS of its own
# series rather than refused: `-i 10.5` sits in Makefiles, READMEs
# and muscle memory, and failing those calls buys nothing. The
# substitution is announced on every run, because a suite that
# silently ran a different engine than it was asked for is worse
# than a broken call. DBMS_VERSION_EXACT=1 skips mapping and check
# both, for reproducing a bug on the engine a customer operates.
if [[ "${DBMS_VERSION_EXACT:-0}" != "1" ]]; then
case "${DBMS_VERSION}" in
10.5|10.6) DBMS_VERSION_LTS="10.11" ;;
11.0|11.1|11.2|11.3) DBMS_VERSION_LTS="11.4" ;;
11.5|11.6|11.7) DBMS_VERSION_LTS="11.8" ;;
12.0|12.1|12.2) DBMS_VERSION_LTS="12.3" ;;
*) DBMS_VERSION_LTS="" ;;
esac
if [[ -n "${DBMS_VERSION_LTS}" ]]; then
echo "WARNING: MariaDB ${DBMS_VERSION} is out of support (EOL, or a rolling release)." >&2
echo " Running ${DBMS_VERSION_LTS} instead — the supported series it belongs to." >&2
echo " Set DBMS_VERSION_EXACT=1 to run ${DBMS_VERSION} anyway." >&2
DBMS_VERSION="${DBMS_VERSION_LTS}"
fi
if ! [[ ${DBMS_VERSION} =~ ^(10.11|11.4|11.8|12.3)$ ]]; then
echo "Invalid combination -d ${DBMS} -i ${DBMS_VERSION}" >&2
echo "Supported: 10.11, 11.4, 11.8, 12.3. Set DBMS_VERSION_EXACT=1 to run an unsupported version." >&2
exit 1
fi
fi
;;
mysql)
Expand Down Expand Up @@ -157,7 +185,7 @@ Options:
Database for functional tests (default: sqlite)

-i version
Database version (mariadb: 11.4, mysql: 8.4, postgres: 16)
Database version (mariadb: 11.8, mysql: 8.4, postgres: 16)

-p <8.2|8.3|8.4|8.5>
PHP version (default: 8.5)
Expand Down
Loading