Richard Zowalla created OPENJPA-3011:
----------------------------------------
Summary: Run the MySQL, MariaDB and PostgreSQL profiles on a
schedule in CI
Key: OPENJPA-3011
URL: https://issues.apache.org/jira/browse/OPENJPA-3011
Project: OpenJPA
Issue Type: Improvement
Components: jpa
Reporter: Richard Zowalla
The GitHub Actions matrix runs only the test-derby and test-h2 profiles, so
nothing on a pull request exercises MySQL, MariaDB or PostgreSQL. Defects that
are invisible on Derby and H2 therefore reach master and are only found when a
committer runs another database by hand.
Two recent examples, both found that way rather than by CI:
* OPENJPA-3010 - six tests asserted the SQL shape Derby and H2 emit; MySQL and
MariaDB render an unqualified bulk delete as "DELETE t0 FROM T t0" and MySQL
delimits the reserved map key column instead of renaming it, so a full MySQL
run failed (reported by Maxim Solodovnik while running the TCK).
* OPENJPA-3009 - a JPQL LIKE whose pattern contains a backslash matched only on
Derby, on every release; the H2 failure had been treated as flakiness for a
long time.
Proposal: add a scheduled workflow that runs the existing docker profiles
weekly, separate from pr-validation.yml so it never blocks a pull request. The
pom already carries test-mysql-docker, test-mariadb-docker and
test-postgresql-docker profiles with the connection properties pointing at
localhost, so the workflow only has to provide the servers. The
docker-maven-plugin declarations in those profiles have configuration but no
executions, i.e. nothing starts a container during an ordinary build, so GitHub
Actions service containers with health checks are the natural fit.
One job per database keeps it simple and avoids the port clash between MySQL
and MariaDB, which both default to 3306. A manual trigger (workflow_dispatch)
in addition to the schedule makes it usable before a risky merge.
Credentials the profiles expect: MySQL database openjpatst with user and
password openjpatst; MariaDB database openjpatst with root password openjpatst;
PostgreSQL database openjpatst with user and password postgres.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)