Combined dependency updates (2024-08-03) #76
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: test-all | |
on: | |
push: | |
branches-ignore: | |
- 'dependabot/**' #avoid duplicates: only run the PR, not the commit | |
- 'gh-pages' #github pages do not trigger all tests | |
tags-ignore: | |
- 'v*' #avoid rerun existing commit on release | |
pull_request: | |
branches: | |
- 'main' | |
env: | |
TEST_POSTGRES_PWD: ${RANDOM}${RANDOM}${RANDOM} | |
TEST_ORACLE_PWD: ${RANDOM}${RANDOM}${RANDOM} | |
#sqlserver must comply with password requirements (upper, lower, digit, symbol) | |
TEST_SQLSERVER_PWD: ${RANDOM}Ax.${RANDOM}${RANDOM} | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
#if: ${{ false }} # disable for now | |
strategy: | |
matrix: | |
dbms: [Postgres, Oracle, Sqlserver] | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '8' | |
cache: 'maven' | |
- name: Launch Postgres | |
if: ${{ matrix.dbms == 'Postgres' }} | |
run: | | |
docker run -d -p 5432:5432 --name test-postgres --restart unless-stopped \ | |
-e POSTGRES_PASSWORD="$TEST_POSTGRES_PWD" \ | |
-e TEST_POSTGRES_PWD="$TEST_POSTGRES_PWD" \ | |
-v ${GITHUB_WORKSPACE}/setup/postgres:/docker-entrypoint-initdb.d \ | |
postgres:14 | |
chmod u+x setup/wait-container-ready.sh && ./setup/wait-container-ready.sh test-postgres "END SETUP!" | |
- name: Launch Oracle | |
if: ${{ matrix.dbms == 'Oracle' }} | |
run: | | |
docker run -d -p 1521:1521 --name test-oracle --restart unless-stopped \ | |
-e ORACLE_PASSWORD=$TEST_ORACLE_PWD \ | |
-e TEST_ORACLE_PWD="$TEST_ORACLE_PWD" \ | |
-v ${GITHUB_WORKSPACE}/setup/oracle:/container-entrypoint-initdb.d \ | |
gvenzl/oracle-xe:21.3.0-slim | |
chmod u+x setup/wait-container-ready.sh && ./setup/wait-container-ready.sh test-oracle "DATABASE IS READY TO USE!" | |
- name: Launch Sqlserver | |
if: ${{ matrix.dbms == 'Sqlserver' }} | |
run: | | |
docker stop test-sqlserver && docker rm test-sqlserver | |
docker run -d -p 1433:1433 --name test-sqlserver --restart unless-stopped \ | |
-e SA_PASSWORD="$TEST_SQLSERVER_PWD" \ | |
-e TEST_SQLSERVER_PWD="$TEST_SQLSERVER_PWD" \ | |
-e "ACCEPT_EULA=Y" -e "MSSQL_PID=Developer" \ | |
-v ${GITHUB_WORKSPACE}/setup/sqlserver:/setup.d \ | |
mcr.microsoft.com/mssql/server:2017-latest | |
chmod u+x setup/wait-container-ready.sh && ./setup/wait-container-ready.sh test-sqlserver "SQL Server is now ready for client connections" | |
# SQLServer does not have an on startup script, run it now | |
docker exec test-sqlserver bash -c "chmod u+x setup.d/sqlserver-setup.sh && ./setup.d/sqlserver-setup.sh" | |
- name: Test ${{ matrix.dbms }} | |
run: mvn test -Dtest=**/Test${{ matrix.dbms }}* --no-transfer-progress -Duser.timezone=Europe/Madrid | |
#Note: must specify a timezone to avoid oracle error ORA-01882: timezone region not found |