Skip to content
This repository was archived by the owner on Apr 9, 2026. It is now read-only.

php/setup-php-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Warning

This repository has been archived, and is no longer maintained. Please use php/php-windows-builder instead.

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, or 8.5)
  • arch: the architecture to build for (x64 or x86)
  • ts: thread-safety (nts or ts)
  • deps: dependency libraries to install; for now, only core dependencies are available
  • cache: 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 action
  • prefix: the prefix of the PHP installation; needs to be passed to configure
  • vs: the Visual Studio version

About

Setup Windows build environment for PHP extensions

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors