no issue - PHP 8.4 support #147
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/php-query-builder-ci:main | |
strategy: | |
matrix: | |
php-version: | |
- "8.1" | |
- "8.2" | |
- "8.3" | |
- "8.4" | |
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@v3" | |
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/php-query-builder-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@v3" | |
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/php-query-builder-ci:main | |
needs: "phpunit-smoke-tests" | |
strategy: | |
matrix: | |
php-version: | |
- "8.1" | |
mariadb-version: | |
- "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@v3" | |
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" | |
run: "vendor/bin/phpunit" | |
phpunit-mysql: | |
name: "PHPUnit with MySQL" | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/makinacorpus/php-query-builder-ci:main | |
needs: "phpunit-smoke-tests" | |
strategy: | |
matrix: | |
php-version: | |
- "8.1" | |
mysql-version: | |
- "8.0" | |
- "8.2" | |
extension: | |
- "mysqli" | |
- "pdo_mysql" | |
services: | |
mysql: | |
image: "mysql:${{ matrix.mysql-version }}" | |
options: >- | |
--health-cmd "mysqladmin ping --silent" | |
-e MYSQL_ROOT_PASSWORD=password | |
-e MYSQL_DATABASE=test_db | |
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@v3" | |
with: | |
composer-options: "--ignore-platform-req=php+" | |
- name: "Run PHPUnit" | |
env: | |
DBAL_DRIVER: "${{ matrix.extension }}" | |
DBAL_DBNAME: "test_db" | |
DBAL_HOST: "mysql" | |
DBAL_PASSWORD: "password" | |
DBAL_PORT: "3306" | |
DBAL_ROOT_PASSWORD: "password" | |
DBAL_ROOT_USER: "root" | |
DBAL_USER: "root" | |
DATABASE_URL: "mysql://root:password@mysql:3306/test_db" | |
run: "vendor/bin/phpunit" | |
phpunit-mssql: | |
name: "PHPUnit with SQL Server" | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/makinacorpus/php-query-builder-ci:main | |
needs: "phpunit-smoke-tests" | |
strategy: | |
matrix: | |
include: | |
- php-version: "8.1" | |
extension: "pdo_sqlsrv" | |
schema: "mssql" | |
services: | |
mssql: | |
image: "mcr.microsoft.com/mssql/server:2019-latest" | |
env: | |
ACCEPT_EULA: "Y" | |
SA_PASSWORD: "P@ssword123" | |
options: >- | |
--health-cmd "echo quit | /opt/mssql-tools/bin/sqlcmd -S 127.0.0.1 -l 1 -U sa -P P@ssword123" | |
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 }}" | |
ini-values: "zend.assertions=1" | |
extensions: "${{ matrix.extension }}-5.10.0" | |
- name: "Install dependencies with Composer" | |
uses: "ramsey/composer-install@v3" | |
with: | |
composer-options: "--ignore-platform-req=php+" | |
- name: "Run PHPUnit" | |
env: | |
DBAL_DRIVER: "${{ matrix.extension }}" | |
DBAL_DBNAME: "test_db" | |
DBAL_HOST: "mssql" | |
DBAL_PASSWORD: "P@ssword123" | |
DBAL_PORT: "1433" | |
DBAL_ROOT_PASSWORD: "P@ssword123" | |
DBAL_ROOT_USER: "sa" | |
DBAL_USER: "sa" | |
DATABASE_URL: "${{ matrix.schema }}://sa:P%40ssword123@mssql:1433/test_db?serverVersion=2019&driverOptions[TrustServerCertificate]=true" | |
run: "vendor/bin/phpunit" | |
phpunit-sqlite: | |
name: "PHPUnit with SQLite" | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/makinacorpus/php-query-builder-ci:main | |
needs: "phpunit-smoke-tests" | |
strategy: | |
matrix: | |
os: | |
- "ubuntu-22.04" | |
php-version: | |
- "8.1" | |
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 }}" | |
extensions: "${{ matrix.extension }}" | |
ini-values: "zend.assertions=1" | |
- name: "Install dependencies with Composer" | |
uses: "ramsey/composer-install@v3" | |
with: | |
composer-options: "--ignore-platform-req=php+" | |
- name: "Run PHPUnit" | |
env: | |
DBAL_DRIVER: "${{ matrix.extension }}" | |
DBAL_DBNAME: "test_db" | |
DBAL_HOST: "127.0.0.1" | |
DBAL_PATH: ":memory:" | |
DATABASE_URL: "sqlite:///:memory:" | |
run: "vendor/bin/phpunit" |