diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 9c77ab89..ed31434c 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -33,6 +33,7 @@ jobs: - "8.2" - "8.3" - "8.4" + - "8.5" postgres-version: - "16" extension: @@ -95,7 +96,7 @@ jobs: strategy: matrix: php-version: - - "8.1" + - "8.4" postgres-version: - "10" - "15" @@ -158,7 +159,7 @@ jobs: strategy: matrix: php-version: - - "8.1" + - "8.4" mariadb-version: - "10.11.6" # LTS (Feb 2028) - "11.4.5" # LTS (May 2029) @@ -166,7 +167,7 @@ jobs: extension: - "mysqli" include: - - php-version: "8.1" + - php-version: "8.4" mariadb-version: "11.4.5" extension: "pdo_mysql" @@ -224,7 +225,7 @@ jobs: strategy: matrix: php-version: - - "8.1" + - "8.4" mysql-version: - "5.7" - "8.0" @@ -289,7 +290,7 @@ jobs: # strategy: # matrix: # php-version: - # - "8.1" + # - "8.4" # mssql-version: # - "2019" # - "2022" @@ -354,7 +355,7 @@ jobs: os: - "ubuntu-22.04" php-version: - - "8.1" + - "8.4" extension: - "pdo_sqlite" - "sqlite3" diff --git a/dev.sh b/dev.sh index 1d4c530c..592b3887 100755 --- a/dev.sh +++ b/dev.sh @@ -5,9 +5,7 @@ GREEN='\033[0;32m' NC='\033[0m' # No Color # PHP version. -# For now, we keep PHP 8.3 as default version, -# mainly because phpstan can't run with PHP 8.4 -PHPVER="8-3" +PHPVER="8-5" # Extra parameters passed to all docker command lines. EXTRA_DOCKER_ENV="" @@ -35,10 +33,11 @@ while getopts ":xp:l" opt; do "8.4") PHPVER="8-4" ;; + "8.5") + PHPVER="8-5" + ;; *) - # For now, we keep PHP 8.3 as default version, - # mainly because phpstan can't run with PHP 8.4 - PHPVER="8-3" + PHPVER="8-5" ;; esac ;; diff --git a/docker-compose.yaml b/docker-compose.yaml index 72695b2c..23b0dc50 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -47,6 +47,18 @@ services: XDEBUG_MODE: "${XDEBUG_MODE:-debug}" extra_hosts: - "host.docker.internal:host-gateway" + phpunit-8-5: + build: ./docker/php-8.5 + networks: + - db-tools-test + volumes: + - ./:/var/www + environment: + PHP_IDE_CONFIG: ${PHP_IDE_CONFIG:-serverName=dbtoolsbundle} + XDEBUG_CONFIG: "client_host=host.docker.internal client_port=9000 log=/tmp/xdebug/xdebug.log output_dir=/tmp/xdebug start_with_request=trigger" + XDEBUG_MODE: "${XDEBUG_MODE:-debug}" + extra_hosts: + - "host.docker.internal:host-gateway" mysql57: image: mysql:5.7 restart: 'no' diff --git a/docker/franken-image/Dockerfile b/docker/franken-image/Dockerfile index 75efbe0d..291d4de4 100644 --- a/docker/franken-image/Dockerfile +++ b/docker/franken-image/Dockerfile @@ -1,4 +1,4 @@ -FROM dunglas/frankenphp:1-php8.3 +FROM dunglas/frankenphp:1-php8.4 ARG TAG=dev-main ARG EXTRA_COMPOSER_REQUIREMENTS='' diff --git a/docker/php-8.5/Dockerfile b/docker/php-8.5/Dockerfile new file mode 100644 index 00000000..81c8b9d1 --- /dev/null +++ b/docker/php-8.5/Dockerfile @@ -0,0 +1,38 @@ +FROM php:8.5-fpm-bookworm + +# Basic requirements +RUN apt-get update +RUN apt-get install -yqq --no-install-recommends default-mysql-client acl iproute2 zip zlib1g-dev libzip-dev \ + libxml2-dev libpng-dev libghc-curl-dev libldb-dev libldap2-dev gnupg2 libpq-dev sqlite3 + +# Instaling postgresql-client-16 +RUN curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc| gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg && \ + sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" > /etc/apt/sources.list.d/pgdg.list' && \ + apt-get update && apt-get install -y postgresql-16 + +# PHP required extensions +RUN docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql +RUN docker-php-ext-install -j$(nproc) pgsql pdo_pgsql pdo mysqli pdo_mysql zip xml gd curl bcmath +RUN docker-php-ext-enable pdo_pgsql pdo_mysql sodium + +# SQL Server support +# Waiting pdo_sqlsrv to be compatible with PHP-8.5 +# @see https://github.com/microsoft/msphpsql/issues/1546 +# ENV ACCEPT_EULA=Y +# RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - +# RUN curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list +# RUN apt-get update +# RUN apt-get -y --no-install-recommends install msodbcsql18 unixodbc-dev +# RUN pecl install sqlsrv +# RUN pecl install pdo_sqlsrv +# RUN docker-php-ext-enable sqlsrv pdo_sqlsrv + +# Install Xdebug +RUN pecl install xdebug-3.5.0 && docker-php-ext-enable xdebug + +# Cleanup. +RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +COPY --from=composer /usr/bin/composer /usr/bin/composer + +WORKDIR /var/www diff --git a/tests/Unit/Bridge/Symfony/DependencyInjection/DbToolsExtensionTest.php b/tests/Unit/Bridge/Symfony/DependencyInjection/DbToolsExtensionTest.php index c57d0122..85b3e49c 100644 --- a/tests/Unit/Bridge/Symfony/DependencyInjection/DbToolsExtensionTest.php +++ b/tests/Unit/Bridge/Symfony/DependencyInjection/DbToolsExtensionTest.php @@ -32,7 +32,7 @@ private function getContainer(array $parameters = [], array $bundles = []): Cont return $container; } - private function testExtension(array $config, ContainerBuilder $container = null): void + private function testExtension(array $config, ?ContainerBuilder $container = null): void { $container ??= $this->getContainer(); $extension = new DbToolsExtension();