no-issue - CI - add MariaDB #26
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: "Continuous Integration" | |
on: | |
pull_request: | |
paths: | |
- .github/workflows/continuous-integration.yml | |
- composer.* | |
- phpunit.xml.dist | |
- src/** | |
- tests/** | |
push: | |
branches: | |
- "main" | |
paths: | |
- .github/workflows/continuous-integration.yml | |
- composer.* | |
- phpunit.xml.dist | |
- src/** | |
- tests/** | |
env: | |
fail-fast: true | |
jobs: | |
phpunit-smoke-tests: | |
name: "PHPUnit with PHP version matrix" | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/makinacorpus/dbtoolsbundle-ci:main | |
strategy: | |
matrix: | |
php-version: | |
- "8.1" | |
- "8.2" | |
- "8.3" | |
postgres-version: | |
- "16" | |
extension: | |
- "pdo_pgsql" | |
dependencies: | |
- "lowest" | |
- "highest" | |
services: | |
postgres: | |
image: "postgres:${{ matrix.postgres-version }}" | |
env: | |
POSTGRES_PASSWORD: "postgres" | |
options: >- | |
--health-cmd "pg_isready" | |
ports: | |
- "5432:5432" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v4" | |
with: | |
fetch-depth: 2 | |
- name: "Install PHP" | |
uses: "shivammathur/setup-php@v2" | |
with: | |
php-version: "${{ matrix.php-version }}" | |
extensions: "pgsql pdo_pgsql" | |
ini-values: "zend.assertions=1" | |
- name: "Install dependencies with Composer" | |
uses: "ramsey/composer-install@v2" | |
with: | |
dependency-versions: "${{ matrix.dependencies }}" | |
composer-options: "--ignore-platform-req=php+" | |
- name: "Run PHPUnit" | |
env: | |
DBAL_DRIVER: "${{ matrix.extension }}" | |
DBAL_DBNAME: "test_db" | |
DBAL_HOST: "postgres" | |
DBAL_PASSWORD: "postgres" | |
DBAL_PORT: "5432" | |
DBAL_ROOT_PASSWORD: "postgres" | |
DBAL_ROOT_USER: "postgres" | |
DBAL_USER: "postgres" | |
DATABASE_URL: "postgresql://postgres:postgres@postgres:5432/test_db?serverVersion=${{ matrix.postgres-version }}&charset=utf8" | |
run: "vendor/bin/phpunit" | |
phpunit-postgres: | |
name: "PHPUnit with PostgreSQL" | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/makinacorpus/dbtoolsbundle-ci:main | |
needs: "phpunit-smoke-tests" | |
strategy: | |
matrix: | |
php-version: | |
- "8.1" | |
postgres-version: | |
- "10" | |
- "15" | |
- "16" | |
extension: | |
- "pgsql" | |
- "pdo_pgsql" | |
services: | |
postgres: | |
image: "postgres:${{ matrix.postgres-version }}" | |
env: | |
POSTGRES_PASSWORD: "postgres" | |
options: >- | |
--health-cmd "pg_isready" | |
ports: | |
- "5432:5432" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v4" | |
with: | |
fetch-depth: 2 | |
- name: "Install PHP" | |
uses: "shivammathur/setup-php@v2" | |
with: | |
php-version: "${{ matrix.php-version }}" | |
extensions: "pgsql pdo_pgsql" | |
coverage: "pcov" | |
ini-values: "zend.assertions=1" | |
- name: "Install dependencies with Composer" | |
uses: "ramsey/composer-install@v2" | |
with: | |
composer-options: "--ignore-platform-req=php+" | |
- name: "Run PHPUnit" | |
env: | |
DBAL_DRIVER: "${{ matrix.extension }}" | |
DBAL_DBNAME: "test_db" | |
DBAL_HOST: "postgres" | |
DBAL_PASSWORD: "postgres" | |
DBAL_PORT: "5432" | |
DBAL_ROOT_PASSWORD: "postgres" | |
DBAL_ROOT_USER: "postgres" | |
DBAL_USER: "postgres" | |
DATABASE_URL: "postgresql://postgres:postgres@postgres:5432/test_db?serverVersion=${{ matrix.postgres-version }}&charset=utf8" | |
run: "vendor/bin/phpunit" | |
phpunit-mariadb: | |
name: "PHPUnit with MariaDB" | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/makinacorpus/dbtoolsbundle-ci:main | |
needs: "phpunit-smoke-tests" | |
strategy: | |
matrix: | |
php-version: | |
- "8.1" | |
mariadb-version: | |
- "10.6" # LTS (Jul 2026) | |
- "10.11" # LTS (Feb 2028) | |
- "11.0" # STS (Jun 2024) | |
- "11.1" # STS (Aug 2024) | |
extension: | |
- "mysqli" | |
- "pdo_mysql" | |
services: | |
mariadb: | |
image: "mariadb:${{ matrix.mariadb-version }}" | |
env: | |
MARIADB_ROOT_PASSWORD: "password" | |
MYSQL_DATABASE: "test_db" | |
options: >- | |
--health-cmd "mariadb-admin ping --silent || mysqladmin ping --silent" | |
ports: | |
- "3306:3306" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v4" | |
with: | |
fetch-depth: 2 | |
- name: "Install PHP" | |
uses: "shivammathur/setup-php@v2" | |
with: | |
php-version: "${{ matrix.php-version }}" | |
ini-values: "zend.assertions=1" | |
extensions: "${{ matrix.extension }}" | |
- name: "Install dependencies with Composer" | |
uses: "ramsey/composer-install@v2" | |
with: | |
composer-options: "--ignore-platform-req=php+" | |
- name: "Run PHPUnit" | |
env: | |
DBAL_DRIVER: "${{ matrix.extension }}" | |
DBAL_DBNAME: "test_db" | |
DBAL_HOST: "mariadb" | |
DBAL_PASSWORD: "password" | |
DBAL_PORT: "3306" | |
DBAL_ROOT_PASSWORD: "password" | |
DBAL_ROOT_USER: "root" | |
DBAL_USER: "root" | |
DATABASE_URL: "mysql://root:password@mariadb:3306/test_db?serverVersion=${{ matrix.mariadb-version }}-MariaDB" | |
run: "vendor/bin/phpunit" | |
# phpunit-mysql: | |
# name: "PHPUnit with MySQL" | |
# runs-on: "ubuntu-22.04" | |
# strategy: | |
# matrix: | |
# php-version: | |
# - "8.1" | |
# - "8.2" | |
# - "8.3" | |
# mysql-version: | |
# - "5.7" | |
# - "8.0" | |
# - "8.2" | |
# extension: | |
# - "mysqli" | |
# - "pdo_mysql" | |
# services: | |
# mysql: | |
# image: "mysql:${{ matrix.mysql-version }}" | |
# options: >- | |
# --health-cmd "mysqladmin ping --silent" | |
# -e MYSQL_ALLOW_EMPTY_PASSWORD=yes | |
# -e MYSQL_DATABASE=doctrine_tests | |
# ports: | |
# - "3306:3306" | |
# steps: | |
# - name: "Checkout" | |
# uses: "actions/checkout@v4" | |
# with: | |
# fetch-depth: 2 | |
# - name: "Install PHP" | |
# uses: "shivammathur/setup-php@v2" | |
# with: | |
# php-version: "${{ matrix.php-version }}" | |
# coverage: "pcov" | |
# ini-values: "zend.assertions=1" | |
# extensions: "${{ matrix.extension }}" | |
# - name: "Install dependencies with Composer" | |
# uses: "ramsey/composer-install@v2" | |
# with: | |
# composer-options: "--ignore-platform-req=php+" | |
# - name: "Run PHPUnit" | |
# run: "vendor/bin/phpunit -c ci/github/phpunit/${{ matrix.extension }}.xml --coverage-clover=coverage.xml" | |
# phpunit-mssql: | |
# name: "PHPUnit with SQL Server" | |
# runs-on: "ubuntu-20.04" | |
# strategy: | |
# matrix: | |
# php-version: | |
# - "8.1" | |
# - "8.2" | |
# - "8.3" | |
# extension: | |
# - "sqlsrv" | |
# - "pdo_sqlsrv" | |
# collation: | |
# - "Latin1_General_100_CI_AS_SC_UTF8" | |
# services: | |
# mssql: | |
# image: "mcr.microsoft.com/mssql/server:2019-latest" | |
# env: | |
# ACCEPT_EULA: "Y" | |
# SA_PASSWORD: "Doctrine2018" | |
# MSSQL_COLLATION: "${{ matrix.collation }}" | |
# options: >- | |
# --health-cmd "echo quit | /opt/mssql-tools/bin/sqlcmd -S 127.0.0.1 -l 1 -U sa -P Doctrine2018" | |
# ports: | |
# - "1433:1433" | |
# steps: | |
# - name: "Checkout" | |
# uses: "actions/checkout@v4" | |
# with: | |
# fetch-depth: 2 | |
# - name: "Install PHP" | |
# uses: "shivammathur/setup-php@v2" | |
# with: | |
# php-version: "${{ matrix.php-version }}" | |
# coverage: "pcov" | |
# ini-values: "zend.assertions=1" | |
# tools: "pecl" | |
# extensions: "${{ matrix.extension }}-5.10.0beta1" | |
# - name: "Install dependencies with Composer" | |
# uses: "ramsey/composer-install@v2" | |
# with: | |
# composer-options: "--ignore-platform-req=php+" | |
# - name: "Run PHPUnit" | |
# run: "vendor/bin/phpunit -c ci/github/phpunit/${{ matrix.extension }}.xml --coverage-clover=coverage.xml" | |
# phpunit-sqlite: | |
# name: "PHPUnit with SQLite" | |
# runs-on: "${{ matrix.os }}" | |
# strategy: | |
# matrix: | |
# os: | |
# - "ubuntu-22.04" | |
# php-version: | |
# - "8.1" | |
# - "8.2" | |
# - "8.3" | |
# dependencies: | |
# - "highest" | |
# extension: | |
# - "pdo_sqlite" | |
# - "sqlite3" | |
# steps: | |
# - name: "Checkout" | |
# uses: "actions/checkout@v4" | |
# with: | |
# fetch-depth: 2 | |
# - name: "Install PHP" | |
# uses: "shivammathur/setup-php@v2" | |
# with: | |
# php-version: "${{ matrix.php-version }}" | |
# coverage: "pcov" | |
# ini-values: "zend.assertions=1" | |
# - name: "Install dependencies with Composer" | |
# uses: "ramsey/composer-install@v2" | |
# with: | |
# composer-options: "--ignore-platform-req=php+" | |
# dependency-versions: "${{ matrix.dependencies }}" | |
# - name: "Print SQLite version" | |
# run: > | |
# php -r 'printf("Testing with libsqlite version %s\n", (new PDO("sqlite::memory:"))->query("select sqlite_version()")->fetch()[0]);' | |
# if: "${{ matrix.extension == 'pdo_sqlite' }}" | |
# - name: "Print SQLite version" | |
# run: > | |
# php -r 'printf("Testing with libsqlite version %s\n", SQLite3::version()["versionString"]);' | |
# if: "${{ matrix.extension == 'sqlite3' }}" | |
# - name: "Run PHPUnit" | |
# run: "vendor/bin/phpunit -c ci/github/phpunit/${{ matrix.extension }}.xml --coverage-clover=coverage.xml" | |
# phpunit-oci8: | |
# name: "PHPUnit on OCI8" | |
# runs-on: "ubuntu-22.04" | |
# strategy: | |
# matrix: | |
# php-version: | |
# - "8.1" | |
# - "8.2" | |
# - "8.3" | |
# oracle-version: | |
# - "21" | |
# - "23" | |
# services: | |
# oracle: | |
# image: gvenzl/oracle-${{ matrix.oracle-version < 23 && 'xe' || 'free' }}:${{ matrix.oracle-version }} | |
# env: | |
# ORACLE_PASSWORD: oracle | |
# ports: | |
# - "1521:1521" | |
# options: >- | |
# --health-cmd healthcheck.sh | |
# --health-interval 20s | |
# --health-timeout 10s | |
# --health-retries 10 | |
# steps: | |
# - name: "Checkout" | |
# uses: "actions/checkout@v4" | |
# with: | |
# fetch-depth: 2 | |
# - name: "Install PHP" | |
# uses: "shivammathur/setup-php@v2" | |
# with: | |
# php-version: "${{ matrix.php-version }}" | |
# extensions: "oci8" | |
# coverage: "pcov" | |
# ini-values: "zend.assertions=1" | |
# - name: "Install dependencies with Composer" | |
# uses: "ramsey/composer-install@v2" | |
# with: | |
# composer-options: "--ignore-platform-req=php+" | |
# - name: "Run PHPUnit" | |
# run: "vendor/bin/phpunit -c ci/github/phpunit/oci8${{ matrix.oracle-version < 23 && '-21' || '' }}.xml --coverage-clover=coverage.xml" | |
# phpunit-pdo-oci: | |
# name: "PHPUnit on PDO_OCI" | |
# runs-on: "ubuntu-22.04" | |
# strategy: | |
# matrix: | |
# php-version: | |
# - "8.1" | |
# - "8.2" | |
# - "8.3" | |
# oracle-version: | |
# - "21" | |
# - "23" | |
# services: | |
# oracle: | |
# image: gvenzl/oracle-${{ matrix.oracle-version < 23 && 'xe' || 'free' }}:${{ matrix.oracle-version }} | |
# env: | |
# ORACLE_PASSWORD: oracle | |
# ports: | |
# - "1521:1521" | |
# options: >- | |
# --health-cmd healthcheck.sh | |
# --health-interval 20s | |
# --health-timeout 10s | |
# --health-retries 10 | |
# steps: | |
# - name: "Checkout" | |
# uses: "actions/checkout@v4" | |
# with: | |
# fetch-depth: 2 | |
# - name: "Install PHP" | |
# uses: "shivammathur/setup-php@v2" | |
# with: | |
# php-version: "${{ matrix.php-version }}" | |
# extensions: "pdo_oci" | |
# coverage: "pcov" | |
# ini-values: "zend.assertions=1" | |
# - name: "Install dependencies with Composer" | |
# uses: "ramsey/composer-install@v2" | |
# with: | |
# composer-options: "--ignore-platform-req=php+" | |
# - name: "Run PHPUnit" | |
# run: "vendor/bin/phpunit -c ci/github/phpunit/pdo_oci${{ matrix.oracle-version < 23 && '-21' || '' }}.xml --coverage-clover=coverage.xml" |