mirror of
https://github.com/shivammathur/setup-php.git
synced 2025-03-03 19:19:04 +07:00

1.3.7 - restructure code, fix extensions on 7.4 and add example
Setup PHP in GitHub Actions
Setup PHP with required extensions, php.ini configuration and composer in GitHub Actions. 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 section to see how to use this.
🎉 PHP Support
PHP Version | Stability | Release Support |
---|---|---|
5.6 | Stable |
End of life |
7.0 | Stable |
End of life |
7.1 | Stable |
Security fixes only |
7.2 | Stable |
Active |
7.3 | Stable |
Active |
7.4 | Beta /RC |
Active |
Note: PHP 7.4 is currently in development, do not use in production/release branches.
☁️ OS/Platform Support
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 |
🔧 PHP Extension Support
- On
ubuntu
extensions which have the package in apt are installed. - On
windows
andmacOS
PECL extensions are installed. - 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.
📶 Coverage support
- Specify
coverage: xdebug
to useXdebug
.- Runs on all PHP versions supported
uses: shivammathur/setup-php@master
with:
php-version: 7.3
coverage: xdebug
- Specify
coverage: pcov
to usePCOV
.PCOV
is way faster thanXdebug
- For
pcov.directory
to be other thansrc
,lib
or,app
, specify it using theini-values-csv
input. PCOV
needsPHPUnit >= 8.0
andPHP >= 7.1
,PHPUnit
needsPHP >= 7.2
. So usePHP >= 7.2
withPCOV
- For
uses: shivammathur/setup-php@master
with:
php-version: 7.3
ini-values-csv: 'pcov.directory=api' #optional, see above for usage.
coverage: pcov
📝 Usage
Inputs supported by this GitHub Action.
- php-version
- extension-csv (optional)
- ini-values-csv (optional)
- coverage (optional)
See action.yml for more info
Basic Usage
steps:
- name: Checkout
uses: actions/checkout@master
- name: Installing PHP
uses: shivammathur/setup-php@master
with:
php-version: 7.3
extension-csv: mbstring, xdebug #optional
ini-values-csv: "post_max_size=256M, short_open_tag=On" #optional
coverage: xdebug #optional
- name: Check PHP Version
run: php -v
- name: Check Composer Version
run: composer -V
- name: Check PHP Extensions
run: php -m
Matrix Testing
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']
name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}
steps:
- name: Checkout
uses: actions/checkout@master
- name: Install PHP
uses: shivammathur/setup-php@master
with:
php-version: ${{ matrix.php-versions }}
extension-csv: mbstring, xdebug #optional
ini-values-csv: "post_max_size=256M, short_open_tag=On" #optional
coverage: xdebug #optional
- name: Check PHP Version
run: php -v
- name: Check Composer Version
run: composer -V
- name: Check PHP Extensions
run: php -m
Examples
📜 License
The scripts and documentation in this project are released under the MIT License. This project has multiple dependencies and their licenses can be found in their respective repositories.
👍 Contributions
Contributions are welcome! See Contributor's Guide.
💖 Support this project
🔖 This action uses the following works
📑 Further Reading
Languages
TypeScript
41.4%
Shell
36%
PowerShell
20.5%
PHP
1.5%
JavaScript
0.6%