setup-php 2.16.0 → 2.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/README.md +159 -141
  2. package/lib/config.d.ts +3 -0
  3. package/lib/config.js +76 -0
  4. package/lib/config.js.map +1 -0
  5. package/lib/coverage.d.ts +5 -0
  6. package/lib/coverage.js +102 -0
  7. package/lib/coverage.js.map +1 -0
  8. package/lib/extensions.d.ts +4 -0
  9. package/lib/extensions.js +219 -0
  10. package/lib/extensions.js.map +1 -0
  11. package/lib/fetch.d.ts +1 -0
  12. package/lib/fetch.js +67 -0
  13. package/lib/fetch.js.map +1 -0
  14. package/lib/install.d.ts +2 -0
  15. package/lib/install.js +80 -0
  16. package/lib/install.js.map +1 -0
  17. package/lib/tools.d.ts +23 -0
  18. package/lib/tools.js +378 -0
  19. package/lib/tools.js.map +1 -0
  20. package/lib/utils.d.ts +21 -0
  21. package/lib/utils.js +266 -0
  22. package/lib/utils.js.map +1 -0
  23. package/package.json +21 -20
  24. package/src/config.ts +8 -8
  25. package/src/configs/brew_extensions +1 -0
  26. package/src/configs/composer.env +2 -0
  27. package/src/configs/ini/jit.ini +3 -0
  28. package/src/configs/ini/php.ini +2 -0
  29. package/src/configs/ini/xdebug.ini +1 -0
  30. package/src/configs/os_releases.csv +2 -0
  31. package/src/configs/php_packages +12 -0
  32. package/src/configs/tools.json +48 -26
  33. package/src/configs/tools_schema.json +11 -0
  34. package/src/coverage.ts +24 -49
  35. package/src/extensions.ts +28 -24
  36. package/src/fetch.ts +54 -0
  37. package/src/install.ts +28 -41
  38. package/src/scripts/darwin.sh +81 -33
  39. package/src/scripts/extensions/add_extensions.ps1 +194 -0
  40. package/src/scripts/extensions/add_extensions.sh +198 -0
  41. package/src/scripts/{ext → extensions}/blackfire.ps1 +0 -0
  42. package/src/scripts/{ext → extensions}/blackfire.sh +0 -0
  43. package/src/scripts/{ext → extensions}/couchbase.sh +0 -0
  44. package/src/scripts/{ext → extensions}/cubrid.sh +3 -3
  45. package/src/scripts/{ext → extensions}/extension_map.php +36 -13
  46. package/src/scripts/{ext → extensions}/firebird.ps1 +0 -0
  47. package/src/scripts/{ext → extensions}/firebird.sh +0 -0
  48. package/src/scripts/{ext → extensions}/gearman.sh +0 -0
  49. package/src/scripts/{ext → extensions}/geos.sh +0 -0
  50. package/src/scripts/{ext → extensions}/http.ps1 +1 -0
  51. package/src/scripts/{ext → extensions}/http.sh +13 -20
  52. package/src/scripts/{ext → extensions}/intl.sh +0 -0
  53. package/src/scripts/{ext → extensions}/ioncube.ps1 +2 -2
  54. package/src/scripts/{ext → extensions}/ioncube.sh +2 -2
  55. package/src/scripts/{ext → extensions}/oci.ps1 +39 -14
  56. package/src/scripts/{ext → extensions}/oci.sh +3 -3
  57. package/src/scripts/{ext → extensions}/patches/firebird.sh +0 -0
  58. package/src/scripts/{ext → extensions}/patches/geos.sh +0 -0
  59. package/src/scripts/{ext → extensions}/patches/http.sh +0 -0
  60. package/src/scripts/{ext → extensions}/patches/pdo_oci.sh +0 -0
  61. package/src/scripts/{ext → extensions}/patches/phpize.sh +0 -0
  62. package/src/scripts/{ext → extensions}/patches/protobuf.sh +0 -0
  63. package/src/scripts/{ext → extensions}/phalcon.ps1 +0 -0
  64. package/src/scripts/{ext → extensions}/phalcon.sh +4 -5
  65. package/src/scripts/{ext → extensions}/source.sh +36 -22
  66. package/src/scripts/extensions/sqlsrv.sh +15 -0
  67. package/src/scripts/linux.sh +76 -36
  68. package/src/scripts/tools/add_tools.ps1 +220 -10
  69. package/src/scripts/tools/add_tools.sh +164 -17
  70. package/src/scripts/tools/grpc_php_plugin.ps1 +4 -4
  71. package/src/scripts/tools/grpc_php_plugin.sh +3 -3
  72. package/src/scripts/tools/ppa.sh +12 -9
  73. package/src/scripts/tools/protoc.ps1 +2 -2
  74. package/src/scripts/tools/protoc.sh +2 -2
  75. package/src/scripts/tools/symfony.ps1 +18 -0
  76. package/src/scripts/tools/symfony.sh +18 -0
  77. package/src/scripts/unix.sh +186 -0
  78. package/src/scripts/win32.ps1 +137 -336
  79. package/src/tools.ts +62 -82
  80. package/src/utils.ts +57 -145
  81. package/src/scripts/common.sh +0 -366
package/README.md CHANGED
@@ -11,22 +11,24 @@
11
11
  <a href="https://codecov.io/gh/shivammathur/setup-php" title="Code coverage"><img alt="Codecov Code Coverage" src="https://img.shields.io/codecov/c/github/shivammathur/setup-php?logo=codecov"></a>
12
12
  <a href="https://github.com/shivammathur/setup-php/blob/master/LICENSE" title="license"><img alt="LICENSE" src="https://img.shields.io/badge/license-MIT-428f7e.svg?logo=open%20source%20initiative&logoColor=white&labelColor=555555"></a>
13
13
  <a href="#tada-php-support" title="PHP Versions Supported"><img alt="PHP Versions Supported" src="https://img.shields.io/badge/php-5.3%20to%208.2-777bb3.svg?logo=php&logoColor=white&labelColor=555555"></a>
14
- <a href="https://beta.stepsecurity.io/npm/setup-php"><img alt="release verified" src="https://img.shields.io/endpoint?url=https://beta.api.stepsecurity.io/v1/npm/setup-php/badge?q=1"></a>
15
14
  </p>
16
15
  <p align="center">
17
16
  <a href="https://reddit.com/r/setup_php" title="setup-php reddit"><img alt="setup-php reddit" src="https://img.shields.io/badge/reddit-join-FF5700?logo=reddit&logoColor=FF5700&labelColor=555555"></a>
18
17
  <a href="https://twitter.com/setup_php" title="setup-php twitter"><img alt="setup-php twitter" src="https://img.shields.io/badge/twitter-follow-1DA1F2?logo=twitter&logoColor=1DA1F2&labelColor=555555"></a>
19
18
  <a href="https://status.setup-php.com" title="setup-php status"><img alt="setup-php status" src="https://img.shields.io/badge/status-subscribe-28A745?logo=statuspage&logoColor=28A745&labelColor=555555"></a>
20
19
  </p>
20
+ <p align="center">
21
+ <a href="https://setup-php.com/support-ukraine" title="#StandWithUkraine"><img alt="#StandWithUkraine" src="https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg"></a>
22
+ </p>
21
23
 
22
- Setup PHP with required extensions, php.ini configuration, code-coverage support and various tools like composer in [GitHub Actions](https://github.com/features/actions "GitHub Actions"). This action gives you a cross platform interface to set up the PHP environment you need to test your application. Refer to [Usage](#memo-usage "How to use this") section and [examples](#examples "Examples of use") to see how to use this.
24
+ Setup PHP with required extensions, php.ini configuration, code-coverage support and various tools like composer in [GitHub Actions](https://github.com/features/actions "GitHub Actions"). This action gives you a cross-platform interface to set up the PHP environment you need to test your application. Refer to [Usage](#memo-usage "How to use this") section and [examples](#examples "Examples of use") to see how to use this.
23
25
 
24
26
  ## Contents
25
27
 
26
28
  - [OS/Platform Support](#cloud-osplatform-support)
27
29
  - [GitHub-Hosted Runners](#github-hosted-runners)
28
30
  - [Self-Hosted Runners](#self-hosted-runners)
29
- - [PHP Support](#tada-php-support)
31
+ - [PHP Support](#tada-php-support)
30
32
  - [PHP Extension Support](#heavy_plus_sign-php-extension-support)
31
33
  - [Tools Support](#wrench-tools-support)
32
34
  - [Coverage Support](#signal_strength-coverage-support)
@@ -38,11 +40,11 @@ Setup PHP with required extensions, php.ini configuration, code-coverage support
38
40
  - [Outputs](#outputs)
39
41
  - [Flags](#flags)
40
42
  - [Basic Setup](#basic-setup)
41
- - [Matrix Setup](#matrix-setup)
43
+ - [Matrix Setup](#matrix-setup)
42
44
  - [Nightly Build Setup](#nightly-build-setup)
43
45
  - [Thread Safe Setup](#thread-safe-setup)
44
46
  - [Force Update Setup](#force-update-setup)
45
- - [Verbose Setup](#verbose-setup)
47
+ - [Verbose Setup](#verbose-setup)
46
48
  - [Multi-Arch Setup](#multi-arch-setup)
47
49
  - [Self Hosted Setup](#self-hosted-setup)
48
50
  - [Local Testing Setup](#local-testing-setup)
@@ -62,36 +64,37 @@ Setup PHP with required extensions, php.ini configuration, code-coverage support
62
64
 
63
65
  ## :cloud: OS/Platform Support
64
66
 
65
- Both `GitHub-hosted` and `self-hosted` runners are suppported by `setup-php` on the following OS/Platforms.
67
+ Both `GitHub-hosted` and `self-hosted` runners are supported by `setup-php` on the following OS/Platforms.
66
68
 
67
69
  ### GitHub-Hosted Runners
68
70
 
69
- |Virtual environment|YAML workflow label|Pre-installed PHP|
70
- |--- |--- |--- |
71
- |Ubuntu 18.04|`ubuntu-18.04`|`PHP 7.1` to `PHP 8.0`|
72
- |Ubuntu 20.04|`ubuntu-latest` or `ubuntu-20.04`|`PHP 7.4` to `PHP 8.0`|
73
- |Windows Server 2019|`windows-latest` or `windows-2019`|`PHP 8.0`|
74
- |Windows Server 2022|`windows-2022`|`PHP 8.0`|
75
- |macOS Catalina 10.15|`macos-latest` or `macos-10.15`|`PHP 8.0`|
76
- |macOS Big Sur 11.x|`macos-11`|`PHP 8.0`|
71
+ | Virtual environment | YAML workflow label | Pre-installed PHP |
72
+ |-----------------------|------------------------------------|------------------------|
73
+ | Ubuntu 20.04 | `ubuntu-latest` or `ubuntu-20.04` | `PHP 7.4` to `PHP 8.1` |
74
+ | Ubuntu 18.04 | `ubuntu-18.04` | `PHP 7.1` to `PHP 8.1` |
75
+ | Windows Server 2022 | `windows-latest` or `windows-2022` | `PHP 8.1` |
76
+ | Windows Server 2019 | `windows-2019` | `PHP 8.1` |
77
+ | macOS Big Sur 11.x | `macos-11` | `PHP 8.1` |
78
+ | macOS Catalina 10.15 | `macos-latest` or `macos-10.15` | `PHP 8.1` |
77
79
 
78
80
  ### Self-Hosted Runners
79
81
 
80
- |Host OS/Virtual environment|YAML workflow label|
81
- |--- |--- |
82
- |Ubuntu 18.04|`self-hosted` or `Linux`|
83
- |Ubuntu 20.04|`self-hosted` or `Linux`|
84
- |Ubuntu 21.04|`self-hosted` or `Linux`|
85
- |Debian 9|`self-hosted` or `Linux`|
86
- |Debian 10|`self-hosted` or `Linux`|
87
- |Debian 11|`self-hosted` or `Linux`|
88
- |Windows 7 and newer|`self-hosted` or `Windows`|
89
- |Windows Server 2012 R2 and newer|`self-hosted` or `Windows`|
90
- |macOS Catalina 10.15|`self-hosted` or `macOS`|
91
- |macOS Big Sur 11.x x86_64/arm64|`self-hosted` or `macOS`|
82
+ | Host OS/Virtual environment | YAML workflow label |
83
+ |----------------------------------|----------------------------|
84
+ | Ubuntu 21.04 | `self-hosted` or `Linux` |
85
+ | Ubuntu 20.04 | `self-hosted` or `Linux` |
86
+ | Ubuntu 18.04 | `self-hosted` or `Linux` |
87
+ | Debian 11 | `self-hosted` or `Linux` |
88
+ | Debian 10 | `self-hosted` or `Linux` |
89
+ | Debian 9 | `self-hosted` or `Linux` |
90
+ | Windows 7 and newer | `self-hosted` or `Windows` |
91
+ | Windows Server 2012 R2 and newer | `self-hosted` or `Windows` |
92
+ | macOS Monterey 12.x x86_64/arm64 | `self-hosted` or `macOS` |
93
+ | macOS Big Sur 11.x x86_64/arm64 | `self-hosted` or `macOS` |
94
+ | macOS Catalina 10.15 | `self-hosted` or `macOS` |
92
95
 
93
96
  - Refer to the [self-hosted setup](#self-hosted-setup) to use the action on self-hosted runners.
94
- - Operating systems based on the above Ubuntu and Debian versions are also supported on a best effort basis.
97
+ - Operating systems based on the above Ubuntu and Debian versions are also supported on best effort basis.
95
98
  - If the requested PHP version is pre-installed, `setup-php` switches to it, otherwise it installs the PHP version.
96
99
 
97
100
  ## :tada: PHP Support
@@ -101,22 +104,22 @@ On all supported OS/Platforms the following PHP versions are supported as per th
101
104
  - PHP 5.3 to PHP 8.2 on GitHub-hosted runners.
102
105
  - PHP 5.6 to PHP 8.2 on self-hosted runners.
103
106
 
104
- |PHP Version|Stability|Release Support|Runner Support|
105
- |--- |--- |--- |--- |
106
- |`5.3`|`Stable`|`End of life`|`GitHub-hosted`|
107
- |`5.4`|`Stable`|`End of life`|`GitHub-hosted`|
108
- |`5.5`|`Stable`|`End of life`|`GitHub-hosted`|
109
- |`5.6`|`Stable`|`End of life`|`GitHub-hosted`, `self-hosted`|
110
- |`7.0`|`Stable`|`End of life`|`GitHub-hosted`, `self-hosted`|
111
- |`7.1`|`Stable`|`End of life`|`GitHub-hosted`, `self-hosted`|
112
- |`7.2`|`Stable`|`End of life`|`GitHub-hosted`, `self-hosted`|
113
- |`7.3`|`Stable`|`Security fixes only`|`GitHub-hosted`, `self-hosted`|
114
- |`7.4`|`Stable`|`Active`|`GitHub-hosted`, `self-hosted`|
115
- |`8.0`|`Stable`|`Active`|`GitHub-hosted`, `self-hosted`|
116
- |`8.1`|`Stable`|`Active`|`GitHub-hosted`, `self-hosted`|
117
- |`8.2`|`Nightly`|`In development`|`GitHub-hosted`, `self-hosted`|
118
-
119
- **Notes:**
107
+ | PHP Version | Stability | Release Support | Runner Support |
108
+ |-------------|-----------|-----------------------|--------------------------------|
109
+ | `5.3` | `Stable` | `End of life` | `GitHub-hosted` |
110
+ | `5.4` | `Stable` | `End of life` | `GitHub-hosted` |
111
+ | `5.5` | `Stable` | `End of life` | `GitHub-hosted` |
112
+ | `5.6` | `Stable` | `End of life` | `GitHub-hosted`, `self-hosted` |
113
+ | `7.0` | `Stable` | `End of life` | `GitHub-hosted`, `self-hosted` |
114
+ | `7.1` | `Stable` | `End of life` | `GitHub-hosted`, `self-hosted` |
115
+ | `7.2` | `Stable` | `End of life` | `GitHub-hosted`, `self-hosted` |
116
+ | `7.3` | `Stable` | `End of life` | `GitHub-hosted`, `self-hosted` |
117
+ | `7.4` | `Stable` | `Security fixes only` | `GitHub-hosted`, `self-hosted` |
118
+ | `8.0` | `Stable` | `Active` | `GitHub-hosted`, `self-hosted` |
119
+ | `8.1` | `Stable` | `Active` | `GitHub-hosted`, `self-hosted` |
120
+ | `8.2` | `Nightly` | `In development` | `GitHub-hosted`, `self-hosted` |
121
+
122
+ **Notes:**
120
123
  - Specifying `8.2` in `php-version` input installs a nightly build of `PHP 8.2.0-dev`. See [nightly build setup](#nightly-build-setup) for more information.
121
124
  - To use JIT on `PHP 8.0` and above, refer to the [JIT configuration](#jit-configuration) section.
122
125
 
@@ -130,7 +133,7 @@ PHP extensions can be set up using the `extensions` input. It accepts a `string`
130
133
  - name: Setup PHP with PECL extension
131
134
  uses: shivammathur/setup-php@v2
132
135
  with:
133
- php-version: '8.0'
136
+ php-version: '8.1'
134
137
  extensions: imagick, swoole
135
138
  ```
136
139
 
@@ -152,35 +155,37 @@ PHP extensions can be set up using the `extensions` input. It accepts a `string`
152
155
  extensions: swoole-1.9.3
153
156
  ```
154
157
 
155
- - Pre-release versions extensions available on `PECL` can be set up by suffixing the extension's name with its state i.e `alpha`, `beta`, `devel` or `snapshot`.
158
+ - Extensions with pre-release versions available on `PECL` can be set up by suffixing the extension's name with its state i.e `alpha`, `beta`, `devel` or `snapshot`.
156
159
 
157
160
  ```yaml
158
161
  - name: Setup PHP with pre-release PECL extension
159
162
  uses: shivammathur/setup-php@v2
160
163
  with:
161
- php-version: '8.0'
164
+ php-version: '8.1'
162
165
  extensions: xdebug-beta
163
166
  ```
164
167
 
168
+ - On `Ubuntu` and `macOS` to compile and install an extension from PECL with libraries or custom configuration follow this [guide](https://github.com/shivammathur/setup-php/wiki/Add-extension-from-PECL-with-libraries-and-custom-configuration "Guide to compile and install PHP extensions using PECL with libraries and custom configuration in setup-php").
169
+
165
170
  - Shared extensions can be disabled by prefixing them with a `:`. All extensions depending on the specified extension will also be disabled.
166
171
 
167
172
  ```yaml
168
173
  - name: Setup PHP and disable opcache
169
174
  uses: shivammathur/setup-php@v2
170
175
  with:
171
- php-version: '8.0'
176
+ php-version: '8.1'
172
177
  extensions: :opcache
173
178
  ```
174
179
 
175
180
  - All shared extensions can be disabled by specifying `none`. When `none` is specified along with other extensions, it is hoisted to the start of the input. So, all the shared extensions will be disabled first, then rest of the extensions in the input will be processed.
176
-
177
- **Note:** This disables all core and third-party shared extensions and thus, can break some tools which need them. So, make sure you add the required extensions after `none` in the `extensions` input.
181
+
182
+ **Note:** This disables all core and third-party shared extensions and thus, can break some tools which need them. Required extensions are enabled again when the tools are set up on a best-effort basis. So it is recommended to add the extensions required for your tools after `none` in the `extensions` input to avoid any issues.
178
183
 
179
184
  ```yaml
180
185
  - name: Setup PHP without any shared extensions except mbstring
181
186
  uses: shivammathur/setup-php@v2
182
187
  with:
183
- php-version: '8.0'
188
+ php-version: '8.1'
184
189
  extensions: none, mbstring
185
190
  ```
186
191
 
@@ -190,8 +195,8 @@ PHP extensions can be set up using the `extensions` input. It accepts a `string`
190
195
  - name: Setup PHP with intl
191
196
  uses: shivammathur/setup-php@v2
192
197
  with:
193
- php-version: '8.0'
194
- extensions: intl-69.1
198
+ php-version: '8.1'
199
+ extensions: intl-70.1
195
200
  ```
196
201
 
197
202
  - Extensions loaded by default after `setup-php` runs can be found on the [wiki](https://github.com/shivammathur/setup-php/wiki).
@@ -201,13 +206,13 @@ PHP extensions can be set up using the `extensions` input. It accepts a `string`
201
206
  - `geos` on `Ubuntu` and `macOS`.
202
207
  - `blackfire`, `couchbase`, `ioncube`, `oci8`, `pdo_firebird`, `pdo_oci`, `pecl_http`, `phalcon3` and `phalcon4` on all supported OS.
203
208
 
204
- - By default, extensions which cannot be added or disabled gracefully leave an error message in the logs, the action is not interrupted. To change this behaviour you can set `fail-fast` flag to `true`.
209
+ - By default, extensions which cannot be added or disabled gracefully leave an error message in the logs, the execution is not interrupted. To change this behaviour you can set `fail-fast` flag to `true`.
205
210
 
206
211
  ```yaml
207
212
  - name: Setup PHP with fail-fast
208
213
  uses: shivammathur/setup-php@v2
209
214
  with:
210
- php-version: '8.0'
215
+ php-version: '8.1'
211
216
  extensions: oci8
212
217
  env:
213
218
  fail-fast: true
@@ -217,13 +222,13 @@ PHP extensions can be set up using the `extensions` input. It accepts a `string`
217
222
 
218
223
  These tools can be set up globally using the `tools` input. It accepts a string in csv-format.
219
224
 
220
- [`behat`], [`blackfire`], [`blackfire-player`], [`codeception`], [`composer`], [`composer-normalize`], [`composer-prefetcher`], [`composer-require-checker`], [`composer-unused`], [`cs2pr`], [`deployer`], [`flex`], [`grpc_php_plugin`], [`infection`], [`parallel-lint`], [`pecl`], [`phan`], [`phing`], [`phinx`], [`phive`], [`php-config`], [`php-cs-fixer`], [`phpcbf`], [`phpcpd`], [`phpcs`], [`phpdoc`] or [`phpDocumentor`], [`phpize`], [`phplint`], [`phpmd`], [`phpspec`], [`phpstan`], [`phpunit`], [`phpunit-bridge`], [`phpunit-polyfills`], [`prestissimo`], [`protoc`], [`psalm`], [`symfony`] or [`symfony-cli`], [`vapor`] or [`vapor-cli`], [`wp`] or [`wp-cli`]
225
+ [`behat`], [`blackfire`], [`blackfire-player`], [`churn`], [`codeception`], [`composer`], [`composer-normalize`], [`composer-prefetcher`], [`composer-require-checker`], [`composer-unused`], [`cs2pr`], [`deployer`], [`flex`], [`grpc_php_plugin`], [`infection`], [`parallel-lint`], [`pecl`], [`phan`], [`phing`], [`phinx`], [`phive`], [`php-config`], [`php-cs-fixer`], [`phpcbf`], [`phpcpd`], [`phpcs`], [`phpdoc`] or [`phpDocumentor`], [`phpize`], [`phplint`], [`phpmd`], [`phpspec`], [`phpstan`], [`phpunit`], [`phpunit-bridge`], [`phpunit-polyfills`], [`prestissimo`], [`protoc`], [`psalm`], [`symfony`] or [`symfony-cli`], [`vapor`] or [`vapor-cli`], [`wp`] or [`wp-cli`]
221
226
 
222
227
  ```yaml
223
228
  - name: Setup PHP with tools
224
229
  uses: shivammathur/setup-php@v2
225
230
  with:
226
- php-version: '8.0'
231
+ php-version: '8.1'
227
232
  tools: php-cs-fixer, phpunit
228
233
  ```
229
234
 
@@ -233,7 +238,7 @@ These tools can be set up globally using the `tools` input. It accepts a string
233
238
  - name: Setup PHP with tools
234
239
  uses: shivammathur/setup-php@v2
235
240
  with:
236
- php-version: '8.0'
241
+ php-version: '8.1'
237
242
  tools: vimeo/psalm
238
243
  ```
239
244
 
@@ -252,8 +257,8 @@ These tools can be set up globally using the `tools` input. It accepts a string
252
257
  - name: Setup PHP with tools
253
258
  uses: shivammathur/setup-php@v2
254
259
  with:
255
- php-version: '8.0'
256
- tools: php-cs-fixer:3, phpunit:8.5
260
+ php-version: '8.1'
261
+ tools: php-cs-fixer:3.5, phpunit:9.5
257
262
  env:
258
263
  COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
259
264
  ```
@@ -264,7 +269,7 @@ These tools can be set up globally using the `tools` input. It accepts a string
264
269
  - name: Setup PHP with composer v2
265
270
  uses: shivammathur/setup-php@v2
266
271
  with:
267
- php-version: '8.0'
272
+ php-version: '8.1'
268
273
  tools: composer:v2
269
274
  ```
270
275
 
@@ -274,32 +279,32 @@ These tools can be set up globally using the `tools` input. It accepts a string
274
279
  - name: Setup PHP without composer
275
280
  uses: shivammathur/setup-php@v2
276
281
  with:
277
- php-version: '8.0'
282
+ php-version: '8.1'
278
283
  tools: none
279
284
  ```
280
285
 
281
- - Scripts `phpize` and `php-config` are set up with the same version as of the input PHP version.
286
+ - Tools `pear`, `pecl`, `phpize` and `php-config` are set up by default for all supported PHP versions on Linux and macOS.
282
287
 
283
288
  - The latest version of `blackfire` cli is set up when `blackfire` is specified in tools input. Please refer to the [official documentation](https://blackfire.io/docs/integrations/ci/github-actions "Blackfire.io documentation for GitHub Actions") for using `blackfire` with GitHub Actions.
284
289
 
285
290
  - Tools `prestissimo` and `composer-prefetcher` will be skipped unless `composer:v1` is also specified in tools input. It is recommended to drop `prestissimo` and use `composer v2`.
286
291
 
287
- - By default, tools which cannot be set up gracefully leave an error message in the logs, the action is not interrupted. To change this behaviour you can set `fail-fast` flag to `true`.
292
+ - By default, expect `composer` tools which cannot be set up gracefully leave an error message in the logs, the execution is not interrupted. To change this behaviour you can set `fail-fast` flag to `true`.
288
293
 
289
294
  ```yaml
290
295
  - name: Setup PHP with fail-fast
291
296
  uses: shivammathur/setup-php@v2
292
297
  with:
293
- php-version: '8.0'
298
+ php-version: '8.1'
294
299
  tools: deployer
295
300
  env:
296
301
  fail-fast: true
297
302
  ```
298
303
 
299
304
  **Notes**
300
- - Input `tools` is useful to set up tools which you only use in GitHub Actions, thus keeping your `composer.json` tidy.
301
- - If you do not want to use all your dev-dependencies in GitHub Actions workflow, you can run composer with `--no-dev` and install required tools using `tools` input to speed up your workflow.
302
- - If you have a tool in your `composer.json`, do not set up it with `tools` input as the two instances of the tool might conflict.
305
+ - Input `tools` is useful to set up tools which are only used in CI workflows, thus keeping your `composer.json` tidy.
306
+ - If you do not want to use all your dev-dependencies in workflow, you can run composer with `--no-dev` and install required tools using `tools` input to speed up your workflow.
307
+ - By default, `COMPOSER_NO_INTERACTION` is set to `1` and `COMPOSER_PROCESS_TIMEOUT` is set to `0`. In effect, this means that Composer commands in your scripts do not need to specify `--no-interaction`.
303
308
 
304
309
  ## :signal_strength: Coverage Support
305
310
 
@@ -312,11 +317,11 @@ Runs on all [PHP versions supported](#tada-php-support "List of PHP versions sup
312
317
  - name: Setup PHP with Xdebug
313
318
  uses: shivammathur/setup-php@v2
314
319
  with:
315
- php-version: '8.0'
320
+ php-version: '8.1'
316
321
  coverage: xdebug
317
322
  ```
318
323
 
319
- - The latest version of Xdebug compatible with the PHP version is set up by default.
324
+ - When you specify `coverage: xdebug`, the latest version of Xdebug compatible with the PHP version is set up by default.
320
325
  - If you need Xdebug 2.x on PHP 7.2, 7.3 or 7.4, you can specify `coverage: xdebug2`.
321
326
 
322
327
  ```yaml
@@ -327,6 +332,8 @@ Runs on all [PHP versions supported](#tada-php-support "List of PHP versions sup
327
332
  coverage: xdebug2
328
333
  ```
329
334
 
335
+ **Note**: Xdebug is enabled by default on Ubuntu GitHub Actions images, so if you are not using it in your workflow it is recommended to disable it as that will have a positive impact on your PHP performance. Please refer to the [disable coverage](#disable-coverage) section for details.
336
+
330
337
  ### PCOV
331
338
 
332
339
  Specify `coverage: pcov` to use `PCOV` and disable `Xdebug`.
@@ -338,7 +345,7 @@ Runs on PHP 7.1 and newer PHP versions.
338
345
  - name: Setup PHP with PCOV
339
346
  uses: shivammathur/setup-php@v2
340
347
  with:
341
- php-version: '8.0'
348
+ php-version: '8.1'
342
349
  ini-values: pcov.directory=api #optional, see above for usage.
343
350
  coverage: pcov
344
351
  ```
@@ -360,7 +367,6 @@ Specify `coverage: none` to disable both `Xdebug` and `PCOV`.
360
367
  Disable coverage for these reasons:
361
368
 
362
369
  - You are not generating coverage reports while testing.
363
- - It will disable `Xdebug`, which will have a positive impact on PHP performance.
364
370
  - You are using `phpdbg` for running your tests.
365
371
  - You are profiling your code using `blackfire`.
366
372
  - You are using PHP in JIT mode. Please refer to [JIT configuration](#jit-configuration) section for more details.
@@ -369,7 +375,7 @@ Disable coverage for these reasons:
369
375
  - name: Setup PHP with no coverage driver
370
376
  uses: shivammathur/setup-php@v2
371
377
  with:
372
- php-version: '8.0'
378
+ php-version: '8.1'
373
379
  coverage: none
374
380
  ```
375
381
 
@@ -396,6 +402,12 @@ Disable coverage for these reasons:
396
402
  - Shared extensions prefixed with `:` are disabled.
397
403
  - See [PHP extension support](#heavy_plus_sign-php-extension-support) for more info.
398
404
 
405
+ #### `ini-file` (optional)
406
+
407
+ - Specify the base `php.ini` file.
408
+ - Accepts `production`, `development` or `none`.
409
+ - By default, production `php.ini` file is used.
410
+
399
411
  #### `ini-values` (optional)
400
412
 
401
413
  - Specify the values you want to add to `php.ini`.
@@ -418,7 +430,7 @@ Disable coverage for these reasons:
418
430
 
419
431
  #### `php-version`
420
432
 
421
- To use outputs, give the `setup-php` step an `id`, you can use the same to get the outputs in a later step.
433
+ On GitHub Actions you can assign the `setup-php` step an `id`, you can use the same to get the outputs in a later step.
422
434
 
423
435
  - Provides the PHP version in semver format.
424
436
 
@@ -427,7 +439,7 @@ To use outputs, give the `setup-php` step an `id`, you can use the same to get t
427
439
  id: setup-php
428
440
  uses: shivammathur/setup-php@v2
429
441
  with:
430
- php-version: '8.0'
442
+ php-version: '8.1'
431
443
 
432
444
  - name: Print PHP version
433
445
  run: echo ${{ steps.setup-php.outputs.php-version }}
@@ -462,14 +474,14 @@ See below for more info.
462
474
 
463
475
  ### Basic Setup
464
476
 
465
- > Setup a particular PHP version.
477
+ > Set up a particular PHP version.
466
478
 
467
479
  ```yaml
468
480
  steps:
469
481
  - name: Setup PHP
470
482
  uses: shivammathur/setup-php@v2
471
483
  with:
472
- php-version: '8.0'
484
+ php-version: '8.1'
473
485
  extensions: mbstring, intl
474
486
  ini-values: post_max_size=256M, max_execution_time=180
475
487
  coverage: xdebug
@@ -478,7 +490,7 @@ steps:
478
490
 
479
491
  ### Matrix Setup
480
492
 
481
- > Setup multiple PHP versions on multiple operating systems.
493
+ > Set up multiple PHP versions on multiple operating systems.
482
494
 
483
495
  ```yaml
484
496
  jobs:
@@ -487,7 +499,7 @@ jobs:
487
499
  strategy:
488
500
  matrix:
489
501
  operating-system: ['ubuntu-latest', 'windows-latest', 'macos-latest']
490
- php-versions: ['7.3', '7.4', '8.0']
502
+ php-versions: ['7.4', '8.0', '8.1']
491
503
  phpunit-versions: ['latest']
492
504
  include:
493
505
  - operating-system: 'ubuntu-latest'
@@ -506,9 +518,9 @@ jobs:
506
518
 
507
519
  ### Nightly Build Setup
508
520
 
509
- > Setup a nightly build of `PHP 8.2`.
521
+ > Set up a nightly build of `PHP 8.2`.
510
522
 
511
- - This version is currently in development.
523
+ - This PHP version is currently in active development and might contain bugs and breaking changes.
512
524
  - Some user space extensions might not support this version currently.
513
525
 
514
526
  ```yaml
@@ -525,7 +537,7 @@ steps:
525
537
 
526
538
  ### Thread Safe Setup
527
539
 
528
- > Setup `TS` or `NTS` PHP on `Windows`.
540
+ > Set up `TS` or `NTS` PHP on `Windows`.
529
541
 
530
542
  - `NTS` versions are set up by default.
531
543
  - On `Ubuntu` and `macOS` only `NTS` versions are supported.
@@ -540,7 +552,7 @@ jobs:
540
552
  - name: Setup PHP
541
553
  uses: shivammathur/setup-php@v2
542
554
  with:
543
- php-version: '8.0'
555
+ php-version: '8.1'
544
556
  env:
545
557
  phpts: ts # specify ts or nts
546
558
  ```
@@ -549,14 +561,14 @@ jobs:
549
561
 
550
562
  > Update to the latest patch of PHP versions.
551
563
 
552
- - Pre-installed PHP versions on the GitHub Actions images are not updated to their latest patch release by default.
564
+ - Pre-installed PHP versions are not updated to their latest patch release by default.
553
565
  - You can specify the `update` environment variable to `true` for updating to the latest release.
554
566
 
555
567
  ```yaml
556
568
  - name: Setup PHP with latest versions
557
569
  uses: shivammathur/setup-php@v2
558
570
  with:
559
- php-version: '8.0'
571
+ php-version: '8.1'
560
572
  env:
561
573
  update: true # specify true or false
562
574
  ```
@@ -571,15 +583,15 @@ To debug any issues, you can use the `verbose` tag instead of `v2`.
571
583
  - name: Setup PHP with logs
572
584
  uses: shivammathur/setup-php@verbose
573
585
  with:
574
- php-version: '8.0'
586
+ php-version: '8.1'
575
587
  ```
576
588
 
577
589
  ### Multi-Arch Setup
578
590
 
579
- > Setup PHP on multiple architecture on Ubuntu GitHub Runners.
591
+ > Set up PHP on multiple architecture on Ubuntu GitHub Runners.
580
592
 
581
- - `PHP 5.6` to `PHP 8.0` are supported by `setup-php` on multiple architecture on `Ubuntu`.
582
- - For this, you can use `shivammathur/node` images as containers. These have compatible `Nodejs` installed for JavaScript based GitHub Actions.
593
+ - `PHP 5.6` to `PHP 8.1` are supported by `setup-php` on multiple architecture on `Ubuntu`.
594
+ - For this, you can use `shivammathur/node` images as containers. These have compatible `Nodejs` installed for `setup-php`.
583
595
  - Currently, for `ARM` based setup, you will need [self-hosted runners](#self-hosted-setup).
584
596
 
585
597
  ```yaml
@@ -594,12 +606,12 @@ jobs:
594
606
  - name: Install PHP
595
607
  uses: shivammathur/setup-php@v2
596
608
  with:
597
- php-version: '8.0'
609
+ php-version: '8.1'
598
610
  ```
599
611
 
600
612
  ### Self Hosted Setup
601
613
 
602
- > Setup PHP on a self-hosted runner.
614
+ > Set up PHP on a self-hosted runner.
603
615
 
604
616
  - To set up a containerised self-hosted runner, refer to the following guides as per your base operating system.
605
617
  - [Linux](https://github.com/shivammathur/setup-php/wiki/Dockerized-self-hosted-runner-on-Linux)
@@ -608,7 +620,7 @@ jobs:
608
620
  - To set up the runner directly on the host OS or in a virtual machine, follow this [requirements guide](https://github.com/shivammathur/setup-php/wiki/Requirements-for-self-hosted-runners "Requirements guide for self-hosted runner to run setup-php") before setting up the self-hosted runner.
609
621
  - If your workflow uses [service containers](https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idservices "GitHub Actions Services"), then set up the runner on a Linux host or in a Linux virtual machine. GitHub Actions does not support nested virtualization on Linux, so services will not work in a dockerized container.
610
622
 
611
- Specify the environment variable `runner` with the value `self-hosted`. Without this your workflow will fail.
623
+ It is recommended to specify the environment variable `runner` with the value `self-hosted` for self-hosted environments.
612
624
 
613
625
  ```yaml
614
626
  jobs:
@@ -624,7 +636,7 @@ jobs:
624
636
  with:
625
637
  php-version: ${{ matrix.php-versions }}
626
638
  env:
627
- runner: self-hosted # Specify the runner.
639
+ runner: self-hosted
628
640
  ```
629
641
 
630
642
  **Notes**
@@ -644,7 +656,7 @@ jobs:
644
656
  - name: Setup PHP
645
657
  uses: shivammathur/setup-php@v2
646
658
  with:
647
- php-version: '8.0'
659
+ php-version: '8.1'
648
660
  ```
649
661
 
650
662
  Run the workflow locally with `act` using [`shivammathur/node`](https://github.com/shivammathur/node-docker "Docker image to run setup-php") docker images.
@@ -677,7 +689,7 @@ For example to enable JIT in `tracing` mode with buffer size of `64 MB`.
677
689
  - name: Setup PHP with JIT in tracing mode
678
690
  uses: shivammathur/setup-php@v2
679
691
  with:
680
- php-version: '8.0'
692
+ php-version: '8.1'
681
693
  coverage: none
682
694
  ini-values: opcache.enable_cli=1, opcache.jit=tracing, opcache.jit_buffer_size=64M
683
695
  ```
@@ -716,7 +728,7 @@ key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
716
728
 
717
729
  - If you support a range of `composer` dependencies and use `prefer-lowest` and `prefer-stable` options, you can store them in your matrix and add them to the keys.
718
730
  ```yaml
719
- key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}-${{ matrix.prefer }}-
731
+ key: ${{ runner.os }}-composer-${{ matrix.prefer }}-${{ hashFiles('**/composer.lock') }}
720
732
  restore-keys: ${{ runner.os }}-composer-${{ matrix.prefer }}-
721
733
  ```
722
734
 
@@ -728,7 +740,7 @@ If you have a number of workflows which set up multiple tools or have many compo
728
740
  - name: Setup PHP
729
741
  uses: shivammathur/setup-php@v2
730
742
  with:
731
- php-version: '8.0'
743
+ php-version: '8.1'
732
744
  env:
733
745
  COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
734
746
  ```
@@ -743,7 +755,7 @@ Put the code in the run property of a step and specify the shell as `php {0}`.
743
755
  - name: Setup PHP
744
756
  uses: shivammathur/setup-php@v2
745
757
  with:
746
- php-version: '8.0'
758
+ php-version: '8.1'
747
759
 
748
760
  - name: Run PHP code
749
761
  shell: php {0}
@@ -783,7 +795,7 @@ PHPStan supports error reporting in GitHub Actions, so it does not require probl
783
795
  - name: Setup PHP
784
796
  uses: shivammathur/setup-php@v2
785
797
  with:
786
- php-version: '8.0'
798
+ php-version: '8.1'
787
799
  tools: phpstan
788
800
 
789
801
  - name: Run PHPStan
@@ -798,7 +810,7 @@ Psalm supports error reporting in GitHub Actions with an output format `github`.
798
810
  - name: Setup PHP
799
811
  uses: shivammathur/setup-php@v2
800
812
  with:
801
- php-version: '8.0'
813
+ php-version: '8.1'
802
814
  tools: psalm
803
815
 
804
816
  - name: Run Psalm
@@ -816,7 +828,7 @@ For examples refer to [cs2pr documentation](https://github.com/staabm/annotate-p
816
828
  - name: Setup PHP
817
829
  uses: shivammathur/setup-php@v2
818
830
  with:
819
- php-version: '8.0'
831
+ php-version: '8.1'
820
832
  tools: cs2pr, phpcs
821
833
 
822
834
  - name: Run phpcs
@@ -827,37 +839,38 @@ For examples refer to [cs2pr documentation](https://github.com/staabm/annotate-p
827
839
 
828
840
  Examples of using `setup-php` with various PHP Frameworks and Packages.
829
841
 
830
- |Framework/Package|Runs on|Workflow|
831
- |--- |--- |--- |
832
- |Blackfire|`macOS`, `ubuntu` and `windows`|[blackfire.yml](./examples/blackfire.yml "GitHub Action using Blackfire")|
833
- |Blackfire Player|`macOS`, `ubuntu` and `windows`|[blackfire-player.yml](./examples/blackfire-player.yml "GitHub Action using Blackfire Player")|
834
- |CakePHP with `MySQL` and `Redis`|`ubuntu`|[cakephp-mysql.yml](./examples/cakephp-mysql.yml "GitHub Action for CakePHP with MySQL and Redis")|
835
- |CakePHP with `PostgreSQL` and `Redis`|`ubuntu`|[cakephp-postgres.yml](./examples/cakephp-postgres.yml "GitHub Action for CakePHP with Postgres and Redis")|
836
- |CakePHP without services|`macOS`, `ubuntu` and `windows`|[cakephp.yml](./examples/cakephp.yml "GitHub Action for CakePHP without services")|
837
- |CodeIgniter|`macOS`, `ubuntu` and `windows`|[codeigniter.yml](./examples/codeigniter.yml "GitHub Action for CodeIgniter")|
838
- |Laravel with `MySQL` and `Redis`|`ubuntu`|[laravel-mysql.yml](./examples/laravel-mysql.yml "GitHub Action for Laravel with MySQL and Redis")|
839
- |Laravel with `PostgreSQL` and `Redis`|`ubuntu`|[laravel-postgres.yml](./examples/laravel-postgres.yml "GitHub Action for Laravel with PostgreSQL and Redis")|
840
- |Laravel without services|`macOS`, `ubuntu` and `windows`|[laravel.yml](./examples/laravel.yml "GitHub Action for Laravel without services")|
841
- |Lumen with `MySQL` and `Redis`|`ubuntu`|[lumen-mysql.yml](./examples/lumen-mysql.yml "GitHub Action for Lumen with MySQL and Redis")|
842
- |Lumen with `PostgreSQL` and `Redis`|`ubuntu`|[lumen-postgres.yml](./examples/lumen-postgres.yml "GitHub Action for Lumen with PostgreSQL and Redis")|
843
- |Lumen without services|`macOS`, `ubuntu` and `windows`|[lumen.yml](./examples/lumen.yml "GitHub Action for Lumen without services")|
844
- |Phalcon with `MySQL`|`ubuntu`|[phalcon-mysql.yml](./examples/phalcon-mysql.yml "GitHub Action for Phalcon with MySQL")|
845
- |Phalcon with `PostgreSQL`|`ubuntu`|[phalcon-postgres.yml](./examples/phalcon-postgres.yml "GitHub Action for Phalcon with PostgreSQL")|
846
- |Roots/bedrock|`ubuntu`|[bedrock.yml](./examples/bedrock.yml "GitHub Action for Wordpress Development using @roots/bedrock")|
847
- |Roots/sage|`ubuntu`|[sage.yml](./examples/sage.yml "GitHub Action for Wordpress Development using @roots/sage")|
848
- |Slim Framework|`macOS`, `ubuntu` and `windows`|[slim-framework.yml](./examples/slim-framework.yml "GitHub Action for Slim Framework")|
849
- |Symfony with `MySQL`|`ubuntu`|[symfony-mysql.yml](./examples/symfony-mysql.yml "GitHub Action for Symfony with MySQL")|
850
- |Symfony with `PostgreSQL`|`ubuntu`|[symfony-postgres.yml](./examples/symfony-postgres.yml "GitHub Action for Symfony with PostgreSQL")|
851
- |Symfony without services|`macOS`, `ubuntu` and `windows`|[symfony.yml](./examples/symfony.yml "GitHub Action for Symfony without services")|
852
- |Yii2 Starter Kit with `MySQL`|`ubuntu`|[yii2-mysql.yml](./examples/yii2-mysql.yml "GitHub Action for Yii2 Starter Kit with MySQL")|
853
- |Yii2 Starter Kit with `PostgreSQL`|`ubuntu`|[yii2-postgres.yml](./examples/yii2-postgres.yml "GitHub Action for Yii2 Starter Kit with PostgreSQL")|
854
- |Zend Framework|`macOS`, `ubuntu` and `windows`|[zend-framework.yml](./examples/zend-framework.yml "GitHub Action for Zend Framework")|
842
+ | Framework/Package | Runs on | Workflow |
843
+ |----------------------------------------|---------------------------------|---------------------------------------------------------------------------------------------------------------|
844
+ | Blackfire | `macOS`, `ubuntu` and `windows` | [blackfire.yml](./examples/blackfire.yml "GitHub Action using Blackfire") |
845
+ | Blackfire Player | `macOS`, `ubuntu` and `windows` | [blackfire-player.yml](./examples/blackfire-player.yml "GitHub Action using Blackfire Player") |
846
+ | CakePHP with `MySQL` and `Redis` | `ubuntu` | [cakephp-mysql.yml](./examples/cakephp-mysql.yml "GitHub Action for CakePHP with MySQL and Redis") |
847
+ | CakePHP with `PostgreSQL` and `Redis` | `ubuntu` | [cakephp-postgres.yml](./examples/cakephp-postgres.yml "GitHub Action for CakePHP with Postgres and Redis") |
848
+ | CakePHP without services | `macOS`, `ubuntu` and `windows` | [cakephp.yml](./examples/cakephp.yml "GitHub Action for CakePHP without services") |
849
+ | CodeIgniter | `macOS`, `ubuntu` and `windows` | [codeigniter.yml](./examples/codeigniter.yml "GitHub Action for CodeIgniter") |
850
+ | Laminas MVC | `macOS`, `ubuntu` and `windows` | [laminas-mvc.yml](./examples/laminas-mvc.yml "GitHub Action for Laminas Framework MVC Projects") |
851
+ | Laravel with `MySQL` and `Redis` | `ubuntu` | [laravel-mysql.yml](./examples/laravel-mysql.yml "GitHub Action for Laravel with MySQL and Redis") |
852
+ | Laravel with `PostgreSQL` and `Redis` | `ubuntu` | [laravel-postgres.yml](./examples/laravel-postgres.yml "GitHub Action for Laravel with PostgreSQL and Redis") |
853
+ | Laravel without services | `macOS`, `ubuntu` and `windows` | [laravel.yml](./examples/laravel.yml "GitHub Action for Laravel without services") |
854
+ | Lumen with `MySQL` and `Redis` | `ubuntu` | [lumen-mysql.yml](./examples/lumen-mysql.yml "GitHub Action for Lumen with MySQL and Redis") |
855
+ | Lumen with `PostgreSQL` and `Redis` | `ubuntu` | [lumen-postgres.yml](./examples/lumen-postgres.yml "GitHub Action for Lumen with PostgreSQL and Redis") |
856
+ | Lumen without services | `macOS`, `ubuntu` and `windows` | [lumen.yml](./examples/lumen.yml "GitHub Action for Lumen without services") |
857
+ | Phalcon with `MySQL` | `ubuntu` | [phalcon-mysql.yml](./examples/phalcon-mysql.yml "GitHub Action for Phalcon with MySQL") |
858
+ | Phalcon with `PostgreSQL` | `ubuntu` | [phalcon-postgres.yml](./examples/phalcon-postgres.yml "GitHub Action for Phalcon with PostgreSQL") |
859
+ | Roots/bedrock | `ubuntu` | [bedrock.yml](./examples/bedrock.yml "GitHub Action for Wordpress Development using @roots/bedrock") |
860
+ | Roots/sage | `ubuntu` | [sage.yml](./examples/sage.yml "GitHub Action for Wordpress Development using @roots/sage") |
861
+ | Slim Framework | `macOS`, `ubuntu` and `windows` | [slim-framework.yml](./examples/slim-framework.yml "GitHub Action for Slim Framework") |
862
+ | Symfony with `MySQL` | `ubuntu` | [symfony-mysql.yml](./examples/symfony-mysql.yml "GitHub Action for Symfony with MySQL") |
863
+ | Symfony with `PostgreSQL` | `ubuntu` | [symfony-postgres.yml](./examples/symfony-postgres.yml "GitHub Action for Symfony with PostgreSQL") |
864
+ | Symfony without services | `macOS`, `ubuntu` and `windows` | [symfony.yml](./examples/symfony.yml "GitHub Action for Symfony without services") |
865
+ | Yii2 Starter Kit with `MySQL` | `ubuntu` | [yii2-mysql.yml](./examples/yii2-mysql.yml "GitHub Action for Yii2 Starter Kit with MySQL") |
866
+ | Yii2 Starter Kit with `PostgreSQL` | `ubuntu` | [yii2-postgres.yml](./examples/yii2-postgres.yml "GitHub Action for Yii2 Starter Kit with PostgreSQL") |
855
867
 
856
868
  ## :bookmark: Versioning
857
869
 
858
- - Use the `v2` tag as `setup-php` version. It is a rolling tag and is synced with the latest minor and patch releases. With `v2` you automatically get the bug fixes, security patches, new features and support for latest PHP releases. For debugging any issues `verbose` tag can be used temporarily. It outputs all the logs and is also synced with the latest releases.
870
+ - Use the `v2` tag as `setup-php` version. It is a rolling tag and is synced with the latest minor and patch releases. With `v2` you automatically get the bug fixes, security patches, new features and support for latest PHP releases.
859
871
  - Semantic release versions can also be used. It is recommended to [use dependabot](https://docs.github.com/en/github/administering-a-repository/keeping-your-actions-up-to-date-with-github-dependabot "Setup Dependabot with GitHub Actions") with semantic versioning to keep the actions in your workflows up to date.
860
- - Commit SHA can also be used, but are not recommended. They have to be updated with every release manually, without which you will not get any bug fixes, security patches or new features.
872
+ - Commit SHA can also be used, but are not recommended. They have to be updated with every release manually, without which you will not get any bug fixes, security patches or new features.
873
+ - For debugging any issues `verbose` tag can be used temporarily. It outputs all the logs and is also synced with the latest releases.
861
874
  - It is highly discouraged to use the `master` branch as version, it might break your workflow after major releases as they have breaking changes.
862
875
  - If you are using the `v1` tag or a `1.x.y` version, you should [switch to v2](https://github.com/shivammathur/setup-php/wiki/Switch-to-v2 "Guide for switching from setup-php v1 to v2") as `v1` only gets critical bug fixes. Maintenance support for `v1` will be dropped with the last `PHP 8.0` release.
863
876
 
@@ -884,25 +897,29 @@ Examples of using `setup-php` with various PHP Frameworks and Packages.
884
897
 
885
898
  ## :sparkling_heart: Support This Project
886
899
 
887
- - Please star the project and share it. If you blog, please share your experience of using this action.
888
- - Please sponsor setup-php using [GitHub sponsors](https://github.com/sponsors/shivammathur).
900
+ - Please star the project and share it. If you blog, please share your experience of using `setup-php`.
889
901
  - Please [reach out](mailto:contact@setup-php.com) if you have any questions about sponsoring setup-php.
890
902
 
891
- [![Sponsor shivammathur](https://img.shields.io/badge/-Sponsor-fafbfc?logo=GitHub%20Sponsors)](https://github.com/sponsors/shivammathur)
903
+ Many users and organisations support setup-php via [GitHub Sponsors](https://github.com/sponsors/shivammathur).
892
904
 
893
- ### Corporate Sponsors
905
+ <a href="https://github.com/sponsors/shivammathur"><img src="https://setup-php.com/sponsors.svg?" alt="Sponsor shivammathur"></a>
894
906
 
895
- <p align="center">
896
- <a href="https://setup-php.com/sponsors-corp/?">
897
- <img src="https://setup-php.com/sponsors-corp/?" alt="Corporate sponsors of setup-php and related projects" width="100%">
898
- </a>
899
- </p>
900
-
901
- ### Individual Sponsors
907
+ These companies generously provide setup-php their products and services to aid in the development of this project.
902
908
 
903
- <p align="center">
904
- <a href="https://setup-php.com/sponsors/?">
905
- <img src="https://setup-php.com/sponsors/?" alt="Individual sponsors of setup-php and related projects" width="100%">
909
+ <p>
910
+ <a href="https://www.jetbrains.com/?from=setup-php">
911
+ <img src="https://setup-php.com/sponsors/jetbrains.svg" alt="JetBrains" width="106" height="60">
912
+ </a>
913
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
914
+ <a href="https://www.macstadium.com/opensource/members#gh-light-mode-only">
915
+ <img src="https://setup-php.com/sponsors/macstadium.png" alt="Mac Stadium" width="148" height="60">
916
+ </a>
917
+ <a href="https://www.macstadium.com/opensource/members#gh-dark-mode-only">
918
+ <img src="https://setup-php.com/sponsors/macstadium-white.png" alt="Mac Stadium" width="148" height="60">
919
+ </a>
920
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
921
+ <a href="https://tidelift.com/subscription/pkg/npm-setup-php">
922
+ <img src="https://setup-php.com/sponsors/tidelift.png" alt="Tidelift" width="70" height="60">
906
923
  </a>
907
924
  </p>
908
925
 
@@ -934,6 +951,7 @@ Examples of using `setup-php` with various PHP Frameworks and Packages.
934
951
  [`behat`]: https://docs.behat.org/en/latest/
935
952
  [`blackfire`]: https://blackfire.io/docs/php/index
936
953
  [`blackfire-player`]: https://blackfire.io/docs/builds-cookbooks/player
954
+ [`churn`]: https://github.com/bmitch/churn-php
937
955
  [`codeception`]: https://codeception.com/
938
956
  [`composer`]: https://getcomposer.org/
939
957
  [`composer-normalize`]: https://github.com/ergebnis/composer-normalize