GitHub - php/setup-php-sdk: Setup Windows build environment for PHP extensions
Setup PHP-SDK Action
Github Action to set up an environment for building and testing PHP extensions on Windows.
Example Usage
- id: setup-php-sdk uses: php/setup-php-sdk@v0.12 with: version: 8.0 arch: x64 ts: nts - uses: ilammy/msvc-dev-cmd@v1 with: arch: x64 toolset: ${{steps.setup-php-sdk.outputs.toolset}} - run: phpize - run: configure --enable-dbase --with-prefix=${{steps.setup-php-sdk.outputs.prefix}} - run: nmake - run: nmake test TESTS=tests
Inputs
version: the PHP version to build for (7.0,7.1,7.2,7.3,7.4,8.0,8.1,8.2,8.3,8.4, or8.5)arch: the architecture to build for (x64orx86)ts: thread-safety (ntsorts)deps: dependency libraries to install; for now, only core dependencies are availablecache: whether to cache the PHP SDK, PHP and development pack
Note that for PHP versions 7.4 and below, runs-on: windows-2022 will not work
as the correct toolset is not available. For these versions, you should use
runs-on: windows-2019. For example:
strategy: matrix: os: [ windows-2019, windows-2022 ] php: [ "8.1", "8.0", "7.4", "7.3", "7.2", "7.1" ] arch: [ x64, x86 ] ts: [ ts, nts ] exclude: - { os: windows-2019, php: "8.1" } - { os: windows-2019, php: "8.0" } - { os: windows-2022, php: "7.4" } - { os: windows-2022, php: "7.3" } - { os: windows-2022, php: "7.2" } - { os: windows-2022, php: "7.1" }
Currently, windows-2019 may be used for all PHP versions up to PHP 8.3. PHP 8.4 requires a newer image such as windows-2022.
Manually Installing Toolsets
It is possible to manually install older toolsets on windows-2022 using an
approach suggested in actions/runner-images#9701.
The following example installs VC15 by its
Component ID
to allow building PHP 7.2, 7.3, and 7.4 on a windows-2022 image:
run: steps: - name: Install VC15 component if: ${{ matrix.php == '7.4' || matrix.php == '7.3' || matrix.php == '7.2' }} shell: pwsh run: | Set-Location "C:\Program Files (x86)\Microsoft Visual Studio\Installer\" $installPath = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise" $component = "Microsoft.VisualStudio.Component.VC.v141.x86.x64" $args = ('/c', "vs_installer.exe", 'modify', '--installPath', "`"$installPath`"", '--add', $component, '--quiet', '--norestart', '--nocache') $process = Start-Process -FilePath cmd.exe -ArgumentList $args -Wait -PassThru -WindowStyle Hidden
This step should be executed before invoking the setup-php-sdk action.
Outputs
toolset: the required toolset version; needs to be passed to the ilammy/msvc-dev-cmd actionprefix: the prefix of the PHP installation; needs to be passed to configurevs: the Visual Studio version