2019-09-08 14:23:33 +07:00
# Setup PHP in GitHub Actions
2019-09-06 07:18:51 +07:00
< p align = "left" >
< a href = "https://github.com/shivammathur/setup-php" > < img alt = "GitHub Actions status" src = "https://github.com/shivammathur/setup-php/workflows/Main%20workflow/badge.svg" > < / a >
2019-09-08 14:23:33 +07:00
< a href = "https://github.com/shivammathur/setup-php/blob/master/LICENSE" > < img alt = "LICENSE" src = "https://img.shields.io/badge/license-MIT-428f7e.svg" > < / a >
2019-09-06 07:18:51 +07:00
< / p >
2019-09-08 14:23:33 +07:00
[GitHub Action ](https://github.com/features/actions ) to install PHP with required extensions and composer. This action can be added as a step in your action workflow and it will setup the PHP environment you need to test your application. Refer to [Usage ](#usage ) section to see how to use this.
2019-09-06 07:18:51 +07:00
2019-09-08 14:23:33 +07:00
## PHP Versions Support
2019-09-06 07:52:11 +07:00
- 5.6
- 7.0
- 7.1
- 7.2
- 7.3
2019-09-09 07:11:17 +07:00
- 7.4 `7.4.0beta4` on `ubuntu` , and `7.4.0RC1` on `windows` and `macOS`
**Note:** PHP 7.4 is currently in development, do not use in production.
2019-09-06 07:40:52 +07:00
2019-09-08 14:23:33 +07:00
## OS Support
2019-09-09 02:28:00 +07:00
|Virtual environment|matrix.operating-system|
|--- |--- |
|Windows Server 2019|`windows-latest` or `windows-2019` |
|Windows Server 2016 R2|`windows-2016`|
|Ubuntu 18.04|`ubuntu-latest` or `ubuntu-18.04` |
|Ubuntu 16.04|`ubuntu-16.04`|
|macOS X Mojave 10.14|`macOS-latest` or `macOS-10.14` |
2019-09-06 07:18:51 +07:00
2019-09-08 14:23:33 +07:00
## PHP Extension Support
2019-09-09 02:28:00 +07:00
- On `ubuntu` extensions which have the package in apt are installed.
- On `windows` and `macOS` PECL extensions are installed.
2019-09-07 19:31:50 +07:00
- Extensions which are installed along with PHP if specified are enabled.
- Extensions which cannot be installed gracefully leave an error message in the logs, the action is not interruped.
2019-09-08 14:23:33 +07:00
## Usage
2019-09-06 07:18:51 +07:00
2019-09-09 02:28:00 +07:00
See [action.yml ](action.yml ) for inputs this action supports.
2019-09-06 07:18:51 +07:00
2019-09-08 14:23:33 +07:00
### Basic
2019-09-06 07:18:51 +07:00
```yaml
steps:
- name: Checkout
uses: actions/checkout@master
- name: Installing PHP
uses: shivammathur/setup-php@master
with:
php-version: 7.3
2019-09-07 19:31:50 +07:00
extension-csv: mbstring, xdebug
2019-09-06 07:18:51 +07:00
- name: Check PHP Version
run: php -v
- name: Check Composer Version
run: composer -V
2019-09-07 19:31:50 +07:00
- name: Check PHP Extensions
run: php -m
2019-09-06 07:18:51 +07:00
```
2019-09-08 14:23:33 +07:00
### Matrix Testing
2019-09-06 07:18:51 +07:00
```yaml
jobs:
run:
runs-on: ${{ matrix.operating-system }}
strategy:
max-parallel: 15
matrix:
operating-system: [ubuntu-latest, windows-latest, macOS-latest]
php-versions: ['5.6', '7.0', '7.1', '7.2', '7.3']
2019-09-06 08:52:50 +07:00
name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}
2019-09-06 07:18:51 +07:00
steps:
- name: Checkout
uses: actions/checkout@master
- name: Install PHP
2019-09-06 08:40:02 +07:00
uses: shivammathur/setup-php@master
2019-09-06 07:18:51 +07:00
with:
php-version: ${{ matrix.php-versions }}
2019-09-07 19:31:50 +07:00
extension-csv: mbstring, xdebug
2019-09-06 07:18:51 +07:00
- name: Check PHP Version
run: php -v
2019-09-07 19:31:50 +07:00
- name: Check Composer Version
2019-09-08 10:56:13 +07:00
run: composer -V
2019-09-07 19:31:50 +07:00
- name: Check PHP Extensions
run: php -m
2019-09-06 07:18:51 +07:00
```
2019-09-08 14:23:33 +07:00
## License
2019-09-06 07:18:51 +07:00
The scripts and documentation in this project are released under the [MIT License ](LICENSE )
2019-09-08 14:23:33 +07:00
## Contributions
Contributions are welcome! See [Contributor's Guide ](docs/contributors.md )
## This action uses the following works
- [powershell-phpmanager ](https://github.com/mlocati/powershell-phpmanager )
- [Homebrew ](https://brew.sh/ )
- [ppa:ondrej/php ](https://launchpad.net/~ondrej/+archive/ubuntu/php )
- [exolnet/homebrew-deprecated ](https://github.com/eXolnet/homebrew-deprecated )
2019-09-09 07:11:17 +07:00
- [phpbrew ](https://github.com/phpbrew/phpbrew )
2019-09-08 14:23:33 +07:00
## Further Reading
2019-09-06 07:18:51 +07:00
2019-09-08 14:23:33 +07:00
- [About GitHub Actions ](https://github.com/features/actions )
- [GitHub Actions Syntax ](https://help.github.com/en/articles/workflow-syntax-for-github-actions )
- [Other Awesome Actions ](https://github.com/sdras/awesome-actions )