Skip to content

Commit

Permalink
Note that PHP 7.4 and earlier requires windows-2019 (#1)
Browse files Browse the repository at this point in the history
And add instructions on how to manually install old toolsets.
  • Loading branch information
jmikola authored Jul 13, 2024
1 parent f00a07e commit 4dda4d8
Showing 1 changed file with 27 additions and 3 deletions.
30 changes: 27 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ for building and testing PHP extensions on Windows.
- `deps`: dependency libraries to install; for now, only
[core dependencies](https://windows.php.net/downloads/php-sdk/deps/) are available

Note that for PHP versions 7.2 and below, `runs-on: windows-2022` will not work
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:

Expand All @@ -45,15 +45,39 @@ strategy:
exclude:
- { os: windows-2019, php: "8.1" }
- { os: windows-2019, php: "8.0" }
- { os: windows-2019, php: "7.4" }
- { os: windows-2019, php: "7.3" }
- { 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, although this may
change in future releases.

### Manually Installing Toolsets

It is possible to manually install older toolsets on `windows-2022` using an
approach suggested in [actions/runner-images#9701](https://github.com/actions/runner-images/issues/9701).
The following example installs VC15 by its
[Component ID](https://learn.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-build-tools?view=vs-2022)
to allow building PHP 7.2, 7.3, and 7.4 on a `windows-2022` image:

```yml
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;
Expand Down

0 comments on commit 4dda4d8

Please sign in to comment.