mirror of
https://github.com/shivammathur/setup-php.git
synced 2024-11-23 12:21:07 +07:00
Update README
This commit is contained in:
parent
a35414e37a
commit
1dee067adc
163
README.md
163
README.md
@ -9,9 +9,13 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/shivammathur/setup-php" title="GitHub action to setup PHP"><img alt="GitHub Actions status" src="https://github.com/shivammathur/setup-php/workflows/Main%20workflow/badge.svg"></a>
|
<a href="https://github.com/shivammathur/setup-php" title="GitHub action to setup PHP"><img alt="GitHub Actions status" src="https://github.com/shivammathur/setup-php/workflows/Main%20workflow/badge.svg"></a>
|
||||||
<a href="https://codecov.io/gh/shivammathur/setup-php" title="Code coverage"><img alt="Codecov Code Coverage" src="https://codecov.io/gh/shivammathur/setup-php/branch/master/graph/badge.svg"></a>
|
<a href="https://codecov.io/gh/shivammathur/setup-php" title="Code coverage"><img alt="Codecov Code Coverage" src="https://codecov.io/gh/shivammathur/setup-php/branch/master/graph/badge.svg"></a>
|
||||||
<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"></a>
|
<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>
|
||||||
<a href="#tada-php-support" title="PHP Versions Supported"><img alt="PHP Versions Supported" src="https://img.shields.io/badge/php-%3E%3D%205.3-8892BF.svg"></a>
|
<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.0-777bb3.svg?logo=php&logoColor=white&labelColor=555555"></a>
|
||||||
<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"></a>
|
</p>
|
||||||
|
<p align="center">
|
||||||
|
<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>
|
||||||
|
<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>
|
||||||
|
<a href="https://setup-php.statuspage.io/" 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>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
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 setup 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.
|
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 setup 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.
|
||||||
@ -100,11 +104,12 @@ Both `GitHub-hosted` runners and `self-hosted` runners are supported on the foll
|
|||||||
- On `ubuntu` by default extensions which are available as a package can be installed. PECL extensions if not available as a package can be installed by specifying `pecl` in the tools input.
|
- On `ubuntu` by default extensions which are available as a package can be installed. PECL extensions if not available as a package can be installed by specifying `pecl` in the tools input.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
uses: shivammathur/setup-php@v2
|
- name: Setup PHP with pecl extension
|
||||||
with:
|
uses: shivammathur/setup-php@v2
|
||||||
php-version: '7.4'
|
with:
|
||||||
tools: pecl
|
php-version: '7.4'
|
||||||
extensions: swoole
|
tools: pecl
|
||||||
|
extensions: swoole
|
||||||
```
|
```
|
||||||
|
|
||||||
- On `windows` PECL extensions which have the `DLL` binary can be installed.
|
- On `windows` PECL extensions which have the `DLL` binary can be installed.
|
||||||
@ -116,30 +121,43 @@ with:
|
|||||||
- Specific versions of PECL extensions can be installed by suffixing the version. This is useful for installing old versions of extensions which support end of life PHP versions.
|
- Specific versions of PECL extensions can be installed by suffixing the version. This is useful for installing old versions of extensions which support end of life PHP versions.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
uses: shivammathur/setup-php@v2
|
- name: Setup PHP with specific version of PECL extension
|
||||||
with:
|
uses: shivammathur/setup-php@v2
|
||||||
php-version: '5.4'
|
with:
|
||||||
tools: pecl
|
php-version: '5.4'
|
||||||
extensions: swoole-1.9.3
|
tools: pecl
|
||||||
|
extensions: swoole-1.9.3
|
||||||
```
|
```
|
||||||
|
|
||||||
- Pre-release versions of PECL extensions can be setup by suffixing the extension with its state i.e `alpha`, `beta`, `devel` or `snapshot`.
|
- Pre-release versions of PECL extensions can be setup by suffixing the extension with its state i.e `alpha`, `beta`, `devel` or `snapshot`.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
uses: shivammathur/setup-php@v2
|
- name: Setup PHP with pre-release PECL extension
|
||||||
with:
|
uses: shivammathur/setup-php@v2
|
||||||
php-version: '7.4'
|
with:
|
||||||
tools: pecl
|
php-version: '7.4'
|
||||||
extensions: xdebug-beta
|
tools: pecl
|
||||||
|
extensions: xdebug-beta
|
||||||
```
|
```
|
||||||
|
|
||||||
- Shared extensions can be removed by prefixing them with a `:`.
|
- Shared extensions can be removed by prefixing them with a `:`.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
uses: shivammathur/setup-php@v2
|
- name: Setup PHP and remove shared extension
|
||||||
with:
|
uses: shivammathur/setup-php@v2
|
||||||
php-version: '7.4'
|
with:
|
||||||
extensions: :opcache
|
php-version: '7.4'
|
||||||
|
extensions: :opcache
|
||||||
|
```
|
||||||
|
|
||||||
|
- Extension `intl` can be setup with specific `ICU` version for `PHP 5.6` to `PHP 7.4` in `Ubuntu` workflows by suffixing `intl` with the `ICU` version. `ICU 50.2` and newer versions are supported. Refer to [`ICU builds`](https://github.com/shivammathur/icu-intl#icu4c-builds) for the specific versions supported.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: Setup PHP with intl
|
||||||
|
uses: shivammathur/setup-php@v2
|
||||||
|
with:
|
||||||
|
php-version: '7.4'
|
||||||
|
extensions: intl-67.1
|
||||||
```
|
```
|
||||||
|
|
||||||
- Extensions which cannot be added or removed gracefully leave an error message in the logs, the action is not interrupted.
|
- Extensions which cannot be added or removed gracefully leave an error message in the logs, the action is not interrupted.
|
||||||
@ -150,36 +168,42 @@ with:
|
|||||||
|
|
||||||
These tools can be setup globally using the `tools` input.
|
These tools can be setup globally using the `tools` input.
|
||||||
|
|
||||||
`blackfire`, `blackfire-player`, `codeception`, `composer`, `composer-normalize`, `composer-prefetcher`, `composer-require-checker`, `composer-unused`, `cs2pr`, `deployer`, `flex`, `grpc_php_plugin`, `infection`, `pecl`, `phan`, `phinx`, `phive`, `phpcbf`, `phpcpd`, `php-config`, `php-cs-fixer`, `phpcs`, `phpize`, `phpmd`, `phpstan`, `phpunit`, `prestissimo`, `protoc`, `psalm`, `symfony`, `vapor-cli`
|
`blackfire`, `blackfire-player`, `codeception`, `composer`, `composer-normalize`, `composer-prefetcher`, `composer-require-checker`, `composer-unused`, `cs2pr`, `deployer`, `flex`, `grpc_php_plugin`, `infection`, `pecl`, `phan`, `phing`, `phinx`, `phive`, `phpcbf`, `phpcpd`, `php-config`, `php-cs-fixer`, `phpcs`, `phpize`, `phpmd`, `phpstan`, `phpunit`, `prestissimo`, `protoc`, `psalm`, `symfony`, `vapor-cli`
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
uses: shivammathur/setup-php@v2
|
- name: Setup PHP with tools
|
||||||
with:
|
uses: shivammathur/setup-php@v2
|
||||||
php-version: '7.4'
|
with:
|
||||||
tools: php-cs-fixer, phpunit
|
php-version: '7.4'
|
||||||
|
tools: php-cs-fixer, phpunit
|
||||||
```
|
```
|
||||||
|
|
||||||
To setup a particular version of a tool, specify it in the form `tool:version`.
|
To setup a particular version of a tool, specify it in the form `tool:version`.
|
||||||
Latest stable version of `composer` is setup by default. You can setup the required version by specifying `v1`, `v2`, `snapshot` or `preview` as version.
|
Latest stable version of `composer` is setup by default. You can setup the required version by specifying `v1`, `v2`, `snapshot` or `preview` as version.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
uses: shivammathur/setup-php@v2
|
- name: Setup PHP with composer v2
|
||||||
with:
|
uses: shivammathur/setup-php@v2
|
||||||
php-version: '7.4'
|
with:
|
||||||
tools: composer:v2
|
php-version: '7.4'
|
||||||
|
tools: composer:v2
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Latest versions of both agent `blackfire-agent` and client `blackfire` are setup 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.
|
||||||
|
|
||||||
Version for other tools should be in `semver` format and a valid release of the tool.
|
Version for other tools should be in `semver` format and a valid release of the tool.
|
||||||
|
This is useful for installing tools for older versions of PHP.
|
||||||
|
For example to setup `PHPUnit` on `PHP 7.2`.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
uses: shivammathur/setup-php@v2
|
- name: Setup PHP with tools
|
||||||
with:
|
uses: shivammathur/setup-php@v2
|
||||||
php-version: '7.4'
|
with:
|
||||||
tools: php-cs-fixer:2.16.2, phpunit:8.5.1
|
php-version: '7.2'
|
||||||
|
tools: phpunit:8.5.8
|
||||||
```
|
```
|
||||||
|
|
||||||
**Notes**
|
**Notes**
|
||||||
- Latest versions of both agent `blackfire-agent` and client `blackfire` are setup when `blackfire` is specified in tools input.
|
|
||||||
- If you have a tool in your `composer.json`, do not setup it globally using this action as the two instances of the tool might conflict.
|
- If you have a tool in your `composer.json`, do not setup it globally using this action as the two instances of the tool might conflict.
|
||||||
- Tools which cannot be setup gracefully leave an error message in the logs, the action is not interrupted.
|
- Tools which cannot be setup gracefully leave an error message in the logs, the action is not interrupted.
|
||||||
|
|
||||||
@ -191,10 +215,11 @@ Specify `coverage: xdebug` to use `Xdebug`.
|
|||||||
Runs on all [PHP versions supported](#tada-php-support "List of PHP versions supported on this GitHub Action").
|
Runs on all [PHP versions supported](#tada-php-support "List of PHP versions supported on this GitHub Action").
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
uses: shivammathur/setup-php@v2
|
- name: Setup PHP with Xdebug
|
||||||
with:
|
uses: shivammathur/setup-php@v2
|
||||||
php-version: '7.4'
|
with:
|
||||||
coverage: xdebug
|
php-version: '7.4'
|
||||||
|
coverage: xdebug
|
||||||
```
|
```
|
||||||
|
|
||||||
### PCOV
|
### PCOV
|
||||||
@ -205,11 +230,23 @@ Tests with `PCOV` run much faster than with `Xdebug`.
|
|||||||
If your source code directory is other than `src`, `lib` or, `app`, specify `pcov.directory` using the `ini-values` input.
|
If your source code directory is other than `src`, `lib` or, `app`, specify `pcov.directory` using the `ini-values` input.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
uses: shivammathur/setup-php@v2
|
- name: Setup PHP with PCOV
|
||||||
with:
|
uses: shivammathur/setup-php@v2
|
||||||
php-version: '7.4'
|
with:
|
||||||
ini-values: pcov.directory=api #optional, see above for usage.
|
php-version: '7.4'
|
||||||
coverage: pcov
|
ini-values: pcov.directory=api #optional, see above for usage.
|
||||||
|
coverage: pcov
|
||||||
|
```
|
||||||
|
|
||||||
|
`PHPUnit` 8 and above supports `PCOV` out of the box.
|
||||||
|
If you are using `PHPUnit` 5, 6 or 7, you will need `krakjoe/pcov-clobber`.
|
||||||
|
Before executing your tests add the following step.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- name: Setup PCOV
|
||||||
|
run: |
|
||||||
|
composer require pcov/clobber
|
||||||
|
vendor/bin/pcov clobber
|
||||||
```
|
```
|
||||||
|
|
||||||
### Disable Coverage
|
### Disable Coverage
|
||||||
@ -223,10 +260,11 @@ Consider disabling the coverage using this PHP action for these reasons.
|
|||||||
- You are profiling your code using `blackfire`.
|
- You are profiling your code using `blackfire`.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
uses: shivammathur/setup-php@v2
|
- name: Setup PHP with no coverage driver
|
||||||
with:
|
uses: shivammathur/setup-php@v2
|
||||||
php-version: '7.4'
|
with:
|
||||||
coverage: none
|
php-version: '7.4'
|
||||||
|
coverage: none
|
||||||
```
|
```
|
||||||
|
|
||||||
## :memo: Usage
|
## :memo: Usage
|
||||||
@ -326,7 +364,7 @@ steps:
|
|||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Setup PHP
|
- name: Setup nightly PHP
|
||||||
uses: shivammathur/setup-php@v2
|
uses: shivammathur/setup-php@v2
|
||||||
with:
|
with:
|
||||||
php-version: '8.0'
|
php-version: '8.0'
|
||||||
@ -438,7 +476,7 @@ jobs:
|
|||||||
- You can specify the `update` environment variable to `true` to force update to the latest release.
|
- You can specify the `update` environment variable to `true` to force update to the latest release.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- name: Setup PHP
|
- name: Setup PHP with latest versions
|
||||||
uses: shivammathur/setup-php@v2
|
uses: shivammathur/setup-php@v2
|
||||||
with:
|
with:
|
||||||
php-version: '7.4'
|
php-version: '7.4'
|
||||||
@ -453,7 +491,7 @@ jobs:
|
|||||||
To debug any issues, you can use the `verbose` tag instead of `v2`.
|
To debug any issues, you can use the `verbose` tag instead of `v2`.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- name: Setup PHP
|
- name: Setup PHP with logs
|
||||||
uses: shivammathur/setup-php@verbose
|
uses: shivammathur/setup-php@verbose
|
||||||
with:
|
with:
|
||||||
php-version: '7.4'
|
php-version: '7.4'
|
||||||
@ -613,21 +651,33 @@ Examples of using `setup-php` with various PHP Frameworks and Packages.
|
|||||||
- See [Contributor's Guide](.github/CONTRIBUTING.md "shivammathur/setup-php contribution guide") before you start.
|
- See [Contributor's Guide](.github/CONTRIBUTING.md "shivammathur/setup-php contribution guide") before you start.
|
||||||
- If you face any issues while using this or want to suggest a feature/improvement, create an issue [here](https://github.com/shivammathur/setup-php/issues "Issues reported").
|
- If you face any issues while using this or want to suggest a feature/improvement, create an issue [here](https://github.com/shivammathur/setup-php/issues "Issues reported").
|
||||||
|
|
||||||
|
*Join the list of setup-php contributors*
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/shivammathur/setup-php/graphs/contributors">
|
||||||
|
<img src="https://opencollective.com/setup-php/contributors.svg?width=1024&button=false" alt="setup-php contributers" width="100%">
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
## :sparkling_heart: Support This Project
|
## :sparkling_heart: Support This Project
|
||||||
|
|
||||||
- Please star the project and share it. If you blog, please share your experience of using this action.
|
- Please star the project and share it. If you blog, please share your experience of using this action.
|
||||||
- Please consider supporting our work by sponsoring using [Paypal](https://www.paypal.me/shivammathur "Shivam Mathur PayPal") or by subscribing on [Patreon](https://www.patreon.com/shivammathur "Shivam Mathur Patreon").
|
- Please consider supporting our work by sponsoring using [Open Collective](https://opencollective.com/setup-php), [Paypal](https://www.paypal.me/shivammathur "Shivam Mathur PayPal") or [Patreon](https://www.patreon.com/shivammathur "Shivam Mathur Patreon").
|
||||||
- If you use `setup-php` at your company, please [reach out](mailto:contact@setup-php.com) to sponsor the project.
|
- If you use `setup-php` at your company, please [reach out](mailto:contact@setup-php.com) to sponsor the project.
|
||||||
|
|
||||||
*Huge thanks to the following companies for supporting `setup-php`*
|
*Huge thanks to the following companies for supporting `setup-php`*
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<a href="https://www.jetbrains.com/?from=setup-php">
|
<a href="https://www.jetbrains.com/?from=setup-php">
|
||||||
<img src="https://shivammathur.com/jetbrains.svg" alt="JetBrains" width="150" height="85">
|
<img src="https://shivammathur.com/jetbrains.svg" alt="JetBrains" width="106" height="60">
|
||||||
</a>
|
</a>
|
||||||
<img src="https://shivammathur.com/blank.svg" alt="spacer" width="40" height="85">
|
|
||||||
|
<a href="https://blackfire.io/?utm_source=setup-php">
|
||||||
|
<img src="https://shivammathur.com/blackfire.svg" alt="Blackfire" width="212" height="60">
|
||||||
|
</a>
|
||||||
|
|
||||||
<a href="https://tidelift.com/subscription/pkg/npm-setup-php">
|
<a href="https://tidelift.com/subscription/pkg/npm-setup-php">
|
||||||
<img src="https://shivammathur.com/tidelift.png" alt="Tidelift" width="100" height="85">
|
<img src="https://shivammathur.com/tidelift.png" alt="Tidelift" width="70" height="60">
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@ -641,6 +691,7 @@ Examples of using `setup-php` with various PHP Frameworks and Packages.
|
|||||||
- [shivammathur/composer-cache](https://github.com/shivammathur/composer-cache "Cache composer releases")
|
- [shivammathur/composer-cache](https://github.com/shivammathur/composer-cache "Cache composer releases")
|
||||||
- [shivammathur/homebrew-extensions](https://github.com/shivammathur/homebrew-extensions "Tap for PHP extensions on MacOS")
|
- [shivammathur/homebrew-extensions](https://github.com/shivammathur/homebrew-extensions "Tap for PHP extensions on MacOS")
|
||||||
- [shivammathur/homebrew-php](https://github.com/shivammathur/homebrew-php "Tap for PHP builds on MacOS")
|
- [shivammathur/homebrew-php](https://github.com/shivammathur/homebrew-php "Tap for PHP builds on MacOS")
|
||||||
|
- [shivammathur/icu-intl](https://github.com/shivammathur/icu-intl "icu4c and php-intl builds")
|
||||||
- [shivammathur/php-builder](https://github.com/shivammathur/php-builder "Nightly PHP package for Ubuntu")
|
- [shivammathur/php-builder](https://github.com/shivammathur/php-builder "Nightly PHP package for Ubuntu")
|
||||||
- [shivammathur/php-builder-windows](https://github.com/shivammathur/php-builder-windows "Nightly PHP package for Windows")
|
- [shivammathur/php-builder-windows](https://github.com/shivammathur/php-builder-windows "Nightly PHP package for Windows")
|
||||||
- [shivammathur/php-ubuntu](https://github.com/shivammathur/php-ubuntu "Cache stable PHP Packages for Ubuntu")
|
- [shivammathur/php-ubuntu](https://github.com/shivammathur/php-ubuntu "Cache stable PHP Packages for Ubuntu")
|
||||||
|
Loading…
Reference in New Issue
Block a user