Set the database tests flags as a workflow environment variable

This commit is contained in:
Erik C. Thauvin 2026-06-25 15:34:41 -07:00
parent 21783356f9
commit 94a9435f43
No known key found for this signature in database
GPG key ID: 776702A6A2DA330E

View file

@ -4,6 +4,27 @@ on: [ push, pull_request, workflow_dispatch ]
env: env:
REPORTS_DIR: "build/test-results/test/" REPORTS_DIR: "build/test-results/test/"
# Database versions - change these to upgrade
POSTGRES_IMAGE: "postgres:15"
MYSQL_IMAGE: "mysql:8"
MARIADB_IMAGE: "mariadb:10.9"
ORACLE_XE_IMAGE: "gvenzl/oracle-xe:18-slim"
ORACLE_FREE_IMAGE: "gvenzl/oracle-free:latest"
# DB credentials
DB_NAME: unittests
DB_USER: unittests
DB_PASSWORD: password
# Test flags for DB runs
DB_TEST_FLAGS: >-
-Dtest.postgres=true
-Dtest.mysql=true
-Dtest.mariadb=true
-Dtest.oracle=true
-Dtest.oracle-free=true
-DtestsBadgeUrl=https://rife2.com/tests-badge/update/com.uwyn.rife2/bld
-DtestsBadgeApiKey=${{ secrets.TESTS_BADGE_API_KEY }}
jobs: jobs:
build: build:
@ -26,11 +47,11 @@ jobs:
services: services:
oracle: oracle:
image: ${{ matrix.run-db-tests && 'gvenzl/oracle-xe:18-slim' || '' }} image: ${{ matrix.run-db-tests && env.ORACLE_XE_IMAGE || '' }}
env: env:
ORACLE_RANDOM_PASSWORD: true ORACLE_RANDOM_PASSWORD: true
APP_USER: unittests APP_USER: ${{ env.DB_USER }}
APP_USER_PASSWORD: password APP_USER_PASSWORD: ${{ env.DB_PASSWORD }}
ports: ports:
- 1521:1521 - 1521:1521
options: >- options: >-
@ -40,11 +61,11 @@ jobs:
--health-retries 10 --health-retries 10
oracle-free: oracle-free:
image: ${{ matrix.run-db-tests && 'gvenzl/oracle-free:latest' || '' }} image: ${{ matrix.run-db-tests && env.ORACLE_FREE_IMAGE || '' }}
env: env:
ORACLE_RANDOM_PASSWORD: true ORACLE_RANDOM_PASSWORD: true
APP_USER: unittests APP_USER: ${{ env.DB_USER }}
APP_USER_PASSWORD: password APP_USER_PASSWORD: ${{ env.DB_PASSWORD }}
ports: ports:
- 1522:1521 - 1522:1521
options: >- options: >-
@ -54,11 +75,11 @@ jobs:
--health-retries 10 --health-retries 10
mysql: mysql:
image: ${{ matrix.run-db-tests && 'mysql:8' || '' }} image: ${{ matrix.run-db-tests && env.MYSQL_IMAGE || '' }}
env: env:
MYSQL_DATABASE: unittests MYSQL_DATABASE: ${{ env.DB_NAME }}
MYSQL_USER: unittests MYSQL_USER: ${{ env.DB_USER }}
MYSQL_PASSWORD: password MYSQL_PASSWORD: ${{ env.DB_PASSWORD }}
MYSQL_ROOT_PASSWORD: root MYSQL_ROOT_PASSWORD: root
ports: ports:
- 3306:3306 - 3306:3306
@ -69,11 +90,11 @@ jobs:
--health-retries=3 --health-retries=3
mariadb: mariadb:
image: ${{ matrix.run-db-tests && 'mariadb:10.9' || '' }} image: ${{ matrix.run-db-tests && env.MARIADB_IMAGE || '' }}
env: env:
MARIADB_DATABASE: unittests MARIADB_DATABASE: ${{ env.DB_NAME }}
MARIADB_USER: unittests MARIADB_USER: ${{ env.DB_USER }}
MARIADB_PASSWORD: password MARIADB_PASSWORD: ${{ env.DB_PASSWORD }}
MARIADB_ROOT_PASSWORD: root MARIADB_ROOT_PASSWORD: root
ports: ports:
- 3307:3306 - 3307:3306
@ -84,11 +105,11 @@ jobs:
--health-retries=3 --health-retries=3
postgres: postgres:
image: ${{ matrix.run-db-tests && 'postgres:15' || '' }} image: ${{ matrix.run-db-tests && env.POSTGRES_IMAGE || '' }}
env: env:
POSTGRES_DB: unittests POSTGRES_DB: ${{ env.DB_NAME }}
POSTGRES_PASSWORD: password POSTGRES_PASSWORD: ${{ env.DB_PASSWORD }}
POSTGRES_USER: unittests POSTGRES_USER: ${{ env.DB_USER }}
options: >- options: >-
--health-cmd pg_isready --health-cmd pg_isready
--health-interval 10s --health-interval 10s
@ -98,7 +119,7 @@ jobs:
- 5432:5432 - 5432:5432
env: env:
MYSQL_DATABASE: unittests MYSQL_DATABASE: ${{ env.DB_NAME }}
MYSQL_USER: root MYSQL_USER: root
MYSQL_PASSWORD: root MYSQL_PASSWORD: root
@ -134,8 +155,8 @@ jobs:
id: tests id: tests
run: >- run: >-
${{ matrix.bld-cmd }} test ${{ matrix.bld-cmd }} test
${{ matrix.run-db-tests && '-Dtest.postgres=true -Dtest.mysql=true -Dtest.mariadb=true -Dtest.oracle=true -Dtest.oracle-free=true -DtestsBadgeUrl=https://rife2.com/tests-badge/update/com.uwyn.rife2/bld -DtestsBadgeApiKey=${{ secrets.TESTS_BADGE_API_KEY }}' || '' }}
--reports-dir=${{ env.REPORTS_DIR }} --reports-dir=${{ env.REPORTS_DIR }}
${{ matrix.run-db-tests && env.DB_TEST_FLAGS || '' }}
- name: Run reporter - name: Run reporter
if: always() && steps.tests.outcome == 'failure' if: always() && steps.tests.outcome == 'failure'