diff --git a/.github/pie-behaviour-tests/Dockerfile b/.github/pie-behaviour-tests/Dockerfile index 04d47aef..274aaffd 100644 --- a/.github/pie-behaviour-tests/Dockerfile +++ b/.github/pie-behaviour-tests/Dockerfile @@ -29,8 +29,13 @@ RUN export DEBIAN_FRONTEND="noninteractive"; \ ARG PHP_VERSION=8.4 RUN mkdir -p /usr/local/src/php; \ cd /usr/local/src/php; \ - FULL_LATEST_VERSION=`curl -fsSL "https://www.php.net/releases/index.php?json&max=1&version=$PHP_VERSION" | jq -r '.[].source[]|select(.filename|endswith(".gz")).filename'`; \ - wget -O php.tgz "https://www.php.net/distributions/$FULL_LATEST_VERSION" ; \ + if [ "${PHP_VERSION%-dev}" != "$PHP_VERSION" ]; then \ + PHP_SRC_DOWNLOAD_URL=`curl -fsSL "https://www.php.net/pre-release-builds.php?format=json" | jq -r --arg v "${PHP_VERSION%-dev}" 'to_entries[] | select(.key | startswith($v)) | .value.release.files.gz.path'` ; \ + else \ + FULL_LATEST_VERSION=`curl -fsSL "https://www.php.net/releases/index.php?json&max=1&version=$PHP_VERSION" | jq -r '.[].source[]|select(.filename|endswith(".gz")).filename'`; \ + PHP_SRC_DOWNLOAD_URL="https://www.php.net/distributions/$FULL_LATEST_VERSION" ; \ + fi; \ + wget -O php.tgz "$PHP_SRC_DOWNLOAD_URL" ; \ tar zxf php.tgz ; \ rm php.tgz ; \ ls -l ; \ @@ -44,7 +49,7 @@ RUN mkdir -p /usr/local/src/php; \ RUN touch /usr/local/lib/php.ini COPY --from=ghcr.io/php/pie:bin /pie /usr/local/bin/pie -RUN pie install xdebug/xdebug +RUN BOX_REQUIREMENT_CHECKER=0 pie install xdebug/xdebug COPY --from=clone_ext_repo /example-pie-extension /example-pie-extension diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 9b10e16d..6b74df5e 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -21,6 +21,7 @@ jobs: - '8.3' - '8.4' - '8.5' + - '8.6' steps: - name: Setup PHP uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 #2.37.2 @@ -62,6 +63,7 @@ jobs: - '8.3' - '8.4' - '8.5' + #- '8.6' # @todo bundled repo doesn't support non-stable PHP versions steps: - name: "Purge built-in PHP version" run: | @@ -101,8 +103,15 @@ jobs: libzip-dev - name: "Set php-src download URL" run: | - DIST_URL=`curl -fsSL "https://www.php.net/releases/index.php?json&max=1&version=${{ matrix.php-versions }}" | jq -r '.[].source[]|select(.filename|endswith(".gz")).filename'` - echo "php_src_download_url=https://www.php.net/distributions/$DIST_URL" >> $GITHUB_ENV + if [[ "${{ matrix.php-versions }}" == *-dev ]]; then + VERSION="${{ matrix.php-versions }}" + VERSION="${VERSION%-dev}" + DIST_URL=`curl -fsSL "https://www.php.net/pre-release-builds.php?format=json" | jq -r --arg v "$VERSION" 'to_entries[] | select(.key | startswith($v)) | .value.release.files.gz.path'` + echo "php_src_download_url=$DIST_URL" >> $GITHUB_ENV + else + DIST_URL=`curl -fsSL "https://www.php.net/releases/index.php?json&max=1&version=${{ matrix.php-versions }}" | jq -r '.[].source[]|select(.filename|endswith(".gz")).filename'` + echo "php_src_download_url=https://www.php.net/distributions/$DIST_URL" >> $GITHUB_ENV + fi - name: "Install PHP ${{ matrix.php-versions }}" env: php_src_download_url: ${{ env.php_src_download_url }} @@ -161,6 +170,7 @@ jobs: - '8.3' - '8.4' - '8.5' + - '8.6-dev' steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 #v7.0.0 with: diff --git a/composer.json b/composer.json index 816e2649..50d4b93f 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,7 @@ } ], "require": { - "php": "8.1.*||8.2.*||8.3.*||8.4.*||8.5.*", + "php": "8.1.*||8.2.*||8.3.*||8.4.*||8.5.*||8.6.*", "composer/composer": "^2.10.2", "composer/pcre": "^3.4.0", "composer/semver": "^3.4.4", diff --git a/composer.lock b/composer.lock index a77b258b..a09e5297 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "1698ceeafd2ca389527647c5bf084d70", + "content-hash": "4b51f8b2580535209e862241459429de", "packages": [ { "name": "composer/ca-bundle", @@ -5765,7 +5765,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "8.1.*||8.2.*||8.3.*||8.4.*||8.5.*" + "php": "8.1.*||8.2.*||8.3.*||8.4.*||8.5.*||8.6.*" }, "platform-dev": { "ext-openssl": "*" diff --git a/src/Platform/TargetPlatform.php b/src/Platform/TargetPlatform.php index 1b8d25ef..f661abac 100644 --- a/src/Platform/TargetPlatform.php +++ b/src/Platform/TargetPlatform.php @@ -97,6 +97,9 @@ public static function fromPhpBinaryPath(PhpBinaryPath $phpBinaryPath, int|null case 'VS17': $windowsCompiler = WindowsCompiler::VS17; break; + case 'VS18': + $windowsCompiler = WindowsCompiler::VS18; + break; } } } diff --git a/src/Platform/WindowsCompiler.php b/src/Platform/WindowsCompiler.php index 7b5bc372..93466e57 100644 --- a/src/Platform/WindowsCompiler.php +++ b/src/Platform/WindowsCompiler.php @@ -15,4 +15,5 @@ enum WindowsCompiler case VC15; case VS16; case VS17; + case VS18; } diff --git a/test/assets/pie_test_ext_win/php_pie_test_ext-1.2.3-8.6-ts-vs16-x86_64.dll b/test/assets/pie_test_ext_win/php_pie_test_ext-1.2.3-8.6-ts-vs16-x86_64.dll new file mode 100644 index 00000000..c78b62b1 --- /dev/null +++ b/test/assets/pie_test_ext_win/php_pie_test_ext-1.2.3-8.6-ts-vs16-x86_64.dll @@ -0,0 +1 @@ +only a test file diff --git a/test/assets/pie_test_ext_win/php_pie_test_ext-1.2.3-8.6-ts-vs16-x86_64.pdb b/test/assets/pie_test_ext_win/php_pie_test_ext-1.2.3-8.6-ts-vs16-x86_64.pdb new file mode 100644 index 00000000..c78b62b1 --- /dev/null +++ b/test/assets/pie_test_ext_win/php_pie_test_ext-1.2.3-8.6-ts-vs16-x86_64.pdb @@ -0,0 +1 @@ +only a test file