Releases: shivammathur/setup-php
1.4.5
- Fix custom extension scripts to not clone in working directory.
- Use files from this action instead of copying.
- Use
tool-cache
directory to store script for the action. - Fix race condition in
linux.sh
to get correctphp.ini
- Update
node-version
to12.x
for testing. - Update action branding.
- Update PHP 7.4 versions in
README.md
- Add support for PHP 7.4 for
phalcon4
1.4.4
- Improve PHP installation on windows.
ext-curl
is now enabled by default on windows after installation.- Switch to
apt-fast
onubuntu
. - Fix logs on
windows-2016
. - Update workflows as default shell on
windows
is now powershell. - Run windows script using
pwsh
instead ofpowershell
. This is abreaking-change
. Please switch to1.4.4
if you are running this GitHub Action on windows and using an older version.
1.4.3
- Improve logs.
- Shift from
Write-Host
toprintf
onwindows
for logging. - Shift from
echo
toprintf
onmacOS
andubuntu
for logging. - Fix tests to cleanup files created.
- Fix
Xdebug
andPCOV
installation onPHP7.4
on ubuntu.
1.4.2
- Refactor scripts to use function
add_extension
in shell scripts. - Fix
phpenmod
andphpdismod
commands to specify PHP version. - Add support for
phalcon
extension. - Add examples for
Phalcon
andLumen
frameworks.
1.4.1
- Remove repeated command in
linux.sh
and runupdate-alternatives
in parallel. - Fix enabling extensions on
macOS
. - Tap
exolnet/homebrew-deprecated
only for PHP5.6
and7.0
. - Use
pwsh
for test commands in examples for uniformity across platforms. - Improve links, examples and disable coverage section in
README.md
. - Change
version
tonode-version
in the workflow.
1.4.0
- Refactor and improve code.
- Add examples
- Remove quotes from strings in usage examples in
README
. - Bump version to 1.4.0
1.3.9
New option to disable coverage drivers
specifying coverage: none will disable Xdebug and PCOV if enabled.
Example
uses: shivammathur/setup-php@master
with:
php-version: 7.3
coverage: none
1.3.8
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 interrupted.
📶 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
required
- 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
Examples for setting up this GitHub Action with different PHP Frameworks/Packages.
Note: Make sure you add steps to run your tests after the setup steps given in these 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
1.3.7
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
1.3.6
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
📜 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.