From 7db613643667b2cf07baa64a3847faa892263c3f Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Sun, 26 Sep 2021 09:40:24 +0200 Subject: [PATCH 1/9] Simplified how the not-found redirects are resolved --- .../src/ErrorHandler/NotFoundRedirectHandler.php | 13 +++---------- .../ErrorHandler/NotFoundRedirectHandlerTest.php | 11 ++++++----- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/module/Core/src/ErrorHandler/NotFoundRedirectHandler.php b/module/Core/src/ErrorHandler/NotFoundRedirectHandler.php index 44cd2ddd..57bc4c41 100644 --- a/module/Core/src/ErrorHandler/NotFoundRedirectHandler.php +++ b/module/Core/src/ErrorHandler/NotFoundRedirectHandler.php @@ -27,16 +27,9 @@ class NotFoundRedirectHandler implements MiddlewareInterface /** @var NotFoundType $notFoundType */ $notFoundType = $request->getAttribute(NotFoundType::class); $authority = $request->getUri()->getAuthority(); - $domainSpecificRedirect = $this->resolveDomainSpecificRedirect($authority, $notFoundType); + $redirectConfig = $this->domainService->findByAuthority($authority) ?? $this->redirectOptions; + $redirectResponse = $this->redirectResolver->resolveRedirectResponse($notFoundType, $redirectConfig); - return $domainSpecificRedirect - ?? $this->redirectResolver->resolveRedirectResponse($notFoundType, $this->redirectOptions) - ?? $handler->handle($request); - } - - private function resolveDomainSpecificRedirect(string $authority, NotFoundType $notFoundType): ?ResponseInterface - { - $domain = $this->domainService->findByAuthority($authority); - return $domain === null ? null : $this->redirectResolver->resolveRedirectResponse($notFoundType, $domain); + return $redirectResponse ?? $handler->handle($request); } } diff --git a/module/Core/test/ErrorHandler/NotFoundRedirectHandlerTest.php b/module/Core/test/ErrorHandler/NotFoundRedirectHandlerTest.php index 0d257d8e..877e96b7 100644 --- a/module/Core/test/ErrorHandler/NotFoundRedirectHandlerTest.php +++ b/module/Core/test/ErrorHandler/NotFoundRedirectHandlerTest.php @@ -72,17 +72,18 @@ class NotFoundRedirectHandlerTest extends TestCase $domainService->findByAuthority(Argument::cetera()) ->willReturn(null) ->shouldBeCalledOnce(); - $resolver->resolveRedirectResponse(Argument::cetera()) - ->willReturn(null) - ->shouldBeCalledOnce(); + $resolver->resolveRedirectResponse( + Argument::type(NotFoundType::class), + Argument::type(NotFoundRedirectOptions::class), + )->willReturn(null)->shouldBeCalledOnce(); }]; yield 'non-redirecting domain' => [function (ObjectProphecy $domainService, ObjectProphecy $resolver): void { $domainService->findByAuthority(Argument::cetera()) ->willReturn(Domain::withAuthority('')) ->shouldBeCalledOnce(); - $resolver->resolveRedirectResponse(Argument::cetera()) + $resolver->resolveRedirectResponse(Argument::type(NotFoundType::class), Argument::type(Domain::class)) ->willReturn(null) - ->shouldBeCalledTimes(2); + ->shouldBeCalledOnce(); }]; } From f5aaf298e11f5c6737f05506b972cc7dfc34585a Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Sun, 26 Sep 2021 09:49:51 +0200 Subject: [PATCH 2/9] Added experimental builds under PHP 8.1 --- .github/workflows/ci.yml | 64 +++++++++++++++++++++++++++--------- Dockerfile | 2 +- data/infra/swoole.Dockerfile | 2 +- 3 files changed, 50 insertions(+), 18 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 741f80c0..80922334 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,7 +48,8 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - php-version: ['8.0'] + php-version: ['8.0', '8.1'] + continue-on-error: ${{ matrix.php-version == '8.1' }} steps: - name: Checkout code uses: actions/checkout@v2 @@ -60,7 +61,10 @@ jobs: extensions: swoole-4.6.7 coverage: pcov ini-values: pcov.directory=module - - run: composer install --no-interaction --prefer-dist + - if: ${{ matrix.php-version == '8.1' }} + run: composer install --no-interaction --prefer-dist --ignore-platform-req=php + - if: ${{ matrix.php-version != '8.1' }} + run: composer install --no-interaction --prefer-dist - run: composer test:unit:ci - uses: actions/upload-artifact@v2 if: ${{ matrix.php-version == '8.0' }} @@ -74,7 +78,8 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - php-version: ['8.0'] + php-version: ['8.0', '8.1'] + continue-on-error: ${{ matrix.php-version == '8.1' }} steps: - name: Checkout code uses: actions/checkout@v2 @@ -86,7 +91,10 @@ jobs: extensions: swoole-4.6.7 coverage: pcov ini-values: pcov.directory=module - - run: composer install --no-interaction --prefer-dist + - if: ${{ matrix.php-version == '8.1' }} + run: composer install --no-interaction --prefer-dist --ignore-platform-req=php + - if: ${{ matrix.php-version != '8.1' }} + run: composer install --no-interaction --prefer-dist - run: composer test:db:sqlite:ci - uses: actions/upload-artifact@v2 if: ${{ matrix.php-version == '8.0' }} @@ -100,7 +108,8 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - php-version: ['8.0'] + php-version: ['8.0', '8.1'] + continue-on-error: ${{ matrix.php-version == '8.1' }} steps: - name: Checkout code uses: actions/checkout@v2 @@ -113,14 +122,18 @@ jobs: tools: composer extensions: swoole-4.6.7 coverage: none - - run: composer install --no-interaction --prefer-dist + - if: ${{ matrix.php-version == '8.1' }} + run: composer install --no-interaction --prefer-dist --ignore-platform-req=php + - if: ${{ matrix.php-version != '8.1' }} + run: composer install --no-interaction --prefer-dist - run: composer test:db:mysql db-tests-maria: runs-on: ubuntu-20.04 strategy: matrix: - php-version: ['8.0'] + php-version: ['8.0', '8.1'] + continue-on-error: ${{ matrix.php-version == '8.1' }} steps: - name: Checkout code uses: actions/checkout@v2 @@ -133,14 +146,18 @@ jobs: tools: composer extensions: swoole-4.6.7 coverage: none - - run: composer install --no-interaction --prefer-dist + - if: ${{ matrix.php-version == '8.1' }} + run: composer install --no-interaction --prefer-dist --ignore-platform-req=php + - if: ${{ matrix.php-version != '8.1' }} + run: composer install --no-interaction --prefer-dist - run: composer test:db:maria db-tests-postgres: runs-on: ubuntu-20.04 strategy: matrix: - php-version: ['8.0'] + php-version: ['8.0', '8.1'] + continue-on-error: ${{ matrix.php-version == '8.1' }} steps: - name: Checkout code uses: actions/checkout@v2 @@ -153,14 +170,18 @@ jobs: tools: composer extensions: swoole-4.6.7 coverage: none - - run: composer install --no-interaction --prefer-dist + - if: ${{ matrix.php-version == '8.1' }} + run: composer install --no-interaction --prefer-dist --ignore-platform-req=php + - if: ${{ matrix.php-version != '8.1' }} + run: composer install --no-interaction --prefer-dist - run: composer test:db:postgres db-tests-ms: runs-on: ubuntu-20.04 strategy: matrix: - php-version: ['8.0'] + php-version: ['8.0', '8.1'] + continue-on-error: ${{ matrix.php-version == '8.1' }} steps: - name: Checkout code uses: actions/checkout@v2 @@ -175,7 +196,10 @@ jobs: tools: composer extensions: swoole-4.6.7, pdo_sqlsrv-5.9.0 coverage: none - - run: composer install --no-interaction --prefer-dist + - if: ${{ matrix.php-version == '8.1' }} + run: composer install --no-interaction --prefer-dist --ignore-platform-req=php + - if: ${{ matrix.php-version != '8.1' }} + run: composer install --no-interaction --prefer-dist - name: Create test database run: docker-compose exec -T shlink_db_ms /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'Passw0rd!' -Q "CREATE DATABASE shlink_test;" - run: composer test:db:ms @@ -184,7 +208,8 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - php-version: ['8.0'] + php-version: ['8.0', '8.1'] + continue-on-error: ${{ matrix.php-version == '8.1' }} steps: - name: Checkout code uses: actions/checkout@v2 @@ -198,7 +223,10 @@ jobs: extensions: swoole-4.6.7 coverage: pcov ini-values: pcov.directory=module - - run: composer install --no-interaction --prefer-dist + - if: ${{ matrix.php-version == '8.1' }} + run: composer install --no-interaction --prefer-dist --ignore-platform-req=php + - if: ${{ matrix.php-version != '8.1' }} + run: composer install --no-interaction --prefer-dist - run: bin/test/run-api-tests.sh - uses: actions/upload-artifact@v2 if: ${{ matrix.php-version == '8.0' }} @@ -216,8 +244,9 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - php-version: ['8.0'] + php-version: ['8.0', '8.1'] test-group: ['unit', 'db'] + continue-on-error: ${{ matrix.php-version == '8.1' }} steps: - name: Checkout code uses: actions/checkout@v2 @@ -229,7 +258,10 @@ jobs: extensions: swoole-4.6.7 coverage: pcov ini-values: pcov.directory=module - - run: composer install --no-interaction --prefer-dist + - if: ${{ matrix.php-version == '8.1' }} + run: composer install --no-interaction --prefer-dist --ignore-platform-req=php + - if: ${{ matrix.php-version != '8.1' }} + run: composer install --no-interaction --prefer-dist - uses: actions/download-artifact@v2 with: path: build diff --git a/Dockerfile b/Dockerfile index d2684545..afb9c865 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM php:8.0.9-alpine3.14 as base ARG SHLINK_VERSION=latest ENV SHLINK_VERSION ${SHLINK_VERSION} -ENV SWOOLE_VERSION 4.7.0 +ENV SWOOLE_VERSION 4.7.1 ENV PDO_SQLSRV_VERSION 5.9.0 ENV MS_ODBC_SQL_VERSION 17.5.2.1 ENV LC_ALL "C" diff --git a/data/infra/swoole.Dockerfile b/data/infra/swoole.Dockerfile index 3170729b..0e3fe17f 100644 --- a/data/infra/swoole.Dockerfile +++ b/data/infra/swoole.Dockerfile @@ -4,7 +4,7 @@ MAINTAINER Alejandro Celaya ENV APCU_VERSION 5.1.20 ENV PDO_SQLSRV_VERSION 5.9.0 ENV INOTIFY_VERSION 3.0.0 -ENV SWOOLE_VERSION 4.7.0 +ENV SWOOLE_VERSION 4.7.1 ENV MS_ODBC_SQL_VERSION 17.5.2.1 RUN apk update From 633e389275f65c9eaa0b25f8caeb270ccf839659 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Sun, 26 Sep 2021 09:50:35 +0200 Subject: [PATCH 3/9] Updated changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3a12e21..46f386eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com), and this ### Changed * [#1142](https://github.com/shlinkio/shlink/issues/1142) Replaced `doctrine/cache` package with `symfony/cache`. * [#1157](https://github.com/shlinkio/shlink/issues/1157) All routes now support CORS, not only rest ones. +* [#1144](https://github.com/shlinkio/shlink/issues/1144) Added experimental builds under PHP 8.1. ### Deprecated * [#1164](https://github.com/shlinkio/shlink/issues/1164) Deprecated `SHORT_DOMAIN_HOST` and `SHORT_DOMAIN_SCHEMA` env vars. Use `DEFAULT_DOMAIN` and `USE_HTTPS=true|false` instead. From c2cd21c15ed4019068e3ed38514c00066e968115 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Sun, 26 Sep 2021 09:53:58 +0200 Subject: [PATCH 4/9] Updated swoole version used in CI workflow --- .github/workflows/ci.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 80922334..e29a0a2c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: with: php-version: ${{ matrix.php-version }} tools: composer - extensions: swoole-4.6.7 + extensions: swoole-4.7.1 coverage: none - run: composer install --no-interaction --prefer-dist - run: composer cs @@ -39,7 +39,7 @@ jobs: with: php-version: ${{ matrix.php-version }} tools: composer - extensions: swoole-4.6.7 + extensions: swoole-4.7.1 coverage: none - run: composer install --no-interaction --prefer-dist - run: composer stan @@ -58,7 +58,7 @@ jobs: with: php-version: ${{ matrix.php-version }} tools: composer - extensions: swoole-4.6.7 + extensions: swoole-4.7.1 coverage: pcov ini-values: pcov.directory=module - if: ${{ matrix.php-version == '8.1' }} @@ -88,7 +88,7 @@ jobs: with: php-version: ${{ matrix.php-version }} tools: composer - extensions: swoole-4.6.7 + extensions: swoole-4.7.1 coverage: pcov ini-values: pcov.directory=module - if: ${{ matrix.php-version == '8.1' }} @@ -120,7 +120,7 @@ jobs: with: php-version: ${{ matrix.php-version }} tools: composer - extensions: swoole-4.6.7 + extensions: swoole-4.7.1 coverage: none - if: ${{ matrix.php-version == '8.1' }} run: composer install --no-interaction --prefer-dist --ignore-platform-req=php @@ -144,7 +144,7 @@ jobs: with: php-version: ${{ matrix.php-version }} tools: composer - extensions: swoole-4.6.7 + extensions: swoole-4.7.1 coverage: none - if: ${{ matrix.php-version == '8.1' }} run: composer install --no-interaction --prefer-dist --ignore-platform-req=php @@ -168,7 +168,7 @@ jobs: with: php-version: ${{ matrix.php-version }} tools: composer - extensions: swoole-4.6.7 + extensions: swoole-4.7.1 coverage: none - if: ${{ matrix.php-version == '8.1' }} run: composer install --no-interaction --prefer-dist --ignore-platform-req=php @@ -194,7 +194,7 @@ jobs: with: php-version: ${{ matrix.php-version }} tools: composer - extensions: swoole-4.6.7, pdo_sqlsrv-5.9.0 + extensions: swoole-4.7.1, pdo_sqlsrv-5.9.0 coverage: none - if: ${{ matrix.php-version == '8.1' }} run: composer install --no-interaction --prefer-dist --ignore-platform-req=php @@ -220,7 +220,7 @@ jobs: with: php-version: ${{ matrix.php-version }} tools: composer - extensions: swoole-4.6.7 + extensions: swoole-4.7.1 coverage: pcov ini-values: pcov.directory=module - if: ${{ matrix.php-version == '8.1' }} @@ -255,7 +255,7 @@ jobs: with: php-version: ${{ matrix.php-version }} tools: composer - extensions: swoole-4.6.7 + extensions: swoole-4.7.1 coverage: pcov ini-values: pcov.directory=module - if: ${{ matrix.php-version == '8.1' }} From f5beec70c807db4c777ead33418c7e98c5c645cc Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Sun, 26 Sep 2021 10:03:07 +0200 Subject: [PATCH 5/9] Updated MS native deps --- Dockerfile | 4 ++-- data/infra/php.Dockerfile | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index afb9c865..fa31a9af 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,8 +3,8 @@ FROM php:8.0.9-alpine3.14 as base ARG SHLINK_VERSION=latest ENV SHLINK_VERSION ${SHLINK_VERSION} ENV SWOOLE_VERSION 4.7.1 -ENV PDO_SQLSRV_VERSION 5.9.0 -ENV MS_ODBC_SQL_VERSION 17.5.2.1 +ENV PDO_SQLSRV_VERSION 5.10.0beta1 +ENV MS_ODBC_SQL_VERSION 17.5.2.2 ENV LC_ALL "C" WORKDIR /etc/shlink diff --git a/data/infra/php.Dockerfile b/data/infra/php.Dockerfile index 02e815b1..ef50db50 100644 --- a/data/infra/php.Dockerfile +++ b/data/infra/php.Dockerfile @@ -2,8 +2,8 @@ FROM php:8.0.9-fpm-alpine3.14 MAINTAINER Alejandro Celaya ENV APCU_VERSION 5.1.20 -ENV PDO_SQLSRV_VERSION 5.9.0 -ENV MS_ODBC_SQL_VERSION 17.5.2.1 +ENV PDO_SQLSRV_VERSION 5.10.0beta1 +ENV MS_ODBC_SQL_VERSION 17.5.2.2 RUN apk update From 3305f4c03ae95d52ce52286e3c48f68443affdd5 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Sun, 26 Sep 2021 10:04:50 +0200 Subject: [PATCH 6/9] Updated pdo_sqlsrv version used in CI workflow --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e29a0a2c..c4939367 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -194,7 +194,7 @@ jobs: with: php-version: ${{ matrix.php-version }} tools: composer - extensions: swoole-4.7.1, pdo_sqlsrv-5.9.0 + extensions: swoole-4.7.1, pdo_sqlsrv-5.10.0beta1 coverage: none - if: ${{ matrix.php-version == '8.1' }} run: composer install --no-interaction --prefer-dist --ignore-platform-req=php From 42dbeaa1a5fa7b5ec4f90daca467d816e49d2809 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Sun, 26 Sep 2021 10:06:35 +0200 Subject: [PATCH 7/9] Updated MS native deps in swoole dev container --- data/infra/swoole.Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/infra/swoole.Dockerfile b/data/infra/swoole.Dockerfile index 0e3fe17f..54635153 100644 --- a/data/infra/swoole.Dockerfile +++ b/data/infra/swoole.Dockerfile @@ -2,10 +2,10 @@ FROM php:8.0.9-alpine3.14 MAINTAINER Alejandro Celaya ENV APCU_VERSION 5.1.20 -ENV PDO_SQLSRV_VERSION 5.9.0 ENV INOTIFY_VERSION 3.0.0 ENV SWOOLE_VERSION 4.7.1 -ENV MS_ODBC_SQL_VERSION 17.5.2.1 +ENV PDO_SQLSRV_VERSION 5.10.0beta1 +ENV MS_ODBC_SQL_VERSION 17.5.2.2 RUN apk update From fb26a8ae50f808dd2131e311b5e54c09fff9aaac Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Sun, 26 Sep 2021 10:19:26 +0200 Subject: [PATCH 8/9] Downgraded pdo_sqlsrv version for PHP 8.0 --- .github/workflows/ci.yml | 9 +++++++++ Dockerfile | 2 +- data/infra/php.Dockerfile | 2 +- data/infra/swoole.Dockerfile | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c4939367..00ae8550 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -190,12 +190,21 @@ jobs: - name: Start database server run: docker-compose -f docker-compose.yml -f docker-compose.ci.yml up -d shlink_db_ms - name: Use PHP + if: ${{ matrix.php-version == '8.1' }} uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} tools: composer extensions: swoole-4.7.1, pdo_sqlsrv-5.10.0beta1 coverage: none + - name: Use PHP + if: ${{ matrix.php-version == '8.1' }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + tools: composer + extensions: swoole-4.7.1, pdo_sqlsrv-5.9.0 + coverage: none - if: ${{ matrix.php-version == '8.1' }} run: composer install --no-interaction --prefer-dist --ignore-platform-req=php - if: ${{ matrix.php-version != '8.1' }} diff --git a/Dockerfile b/Dockerfile index fa31a9af..aea95a86 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ FROM php:8.0.9-alpine3.14 as base ARG SHLINK_VERSION=latest ENV SHLINK_VERSION ${SHLINK_VERSION} ENV SWOOLE_VERSION 4.7.1 -ENV PDO_SQLSRV_VERSION 5.10.0beta1 +ENV PDO_SQLSRV_VERSION 5.9.0 ENV MS_ODBC_SQL_VERSION 17.5.2.2 ENV LC_ALL "C" diff --git a/data/infra/php.Dockerfile b/data/infra/php.Dockerfile index ef50db50..1503ddf2 100644 --- a/data/infra/php.Dockerfile +++ b/data/infra/php.Dockerfile @@ -2,7 +2,7 @@ FROM php:8.0.9-fpm-alpine3.14 MAINTAINER Alejandro Celaya ENV APCU_VERSION 5.1.20 -ENV PDO_SQLSRV_VERSION 5.10.0beta1 +ENV PDO_SQLSRV_VERSION 5.9.0 ENV MS_ODBC_SQL_VERSION 17.5.2.2 RUN apk update diff --git a/data/infra/swoole.Dockerfile b/data/infra/swoole.Dockerfile index 54635153..5b4fac1c 100644 --- a/data/infra/swoole.Dockerfile +++ b/data/infra/swoole.Dockerfile @@ -4,7 +4,7 @@ MAINTAINER Alejandro Celaya ENV APCU_VERSION 5.1.20 ENV INOTIFY_VERSION 3.0.0 ENV SWOOLE_VERSION 4.7.1 -ENV PDO_SQLSRV_VERSION 5.10.0beta1 +ENV PDO_SQLSRV_VERSION 5.9.0 ENV MS_ODBC_SQL_VERSION 17.5.2.2 RUN apk update From 1f8fcdb0f3c3e5a0b46dc242cd6bf9f5aa7fdb06 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Sun, 26 Sep 2021 10:20:09 +0200 Subject: [PATCH 9/9] Fixed typo in ci workflow --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 00ae8550..9d2067da 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -198,7 +198,7 @@ jobs: extensions: swoole-4.7.1, pdo_sqlsrv-5.10.0beta1 coverage: none - name: Use PHP - if: ${{ matrix.php-version == '8.1' }} + if: ${{ matrix.php-version != '8.1' }} uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }}