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)

Reply via email to