Skip to content
Compare
Choose a tag to compare
@shivammathur shivammathur released this 08 Feb 12:59
7854a0c

This release is possible because of our sponsors ❤️.

Help setup-php reach its sponsorship goals.

Sponsor shivammathur


  • Added ini-file input to specify the base php.ini file. Accepts production, development or none. Docs (#450, #469)

By default the production php.ini is used, you can change it to the development one, or remove it using none.

- name: Setup PHP
  with:
    php-version: '8.1'
    ini-file: development
- name: Setup PHP
  with:
    php-version: '8.1'
    tools: symfony-cli
- name: Setup PHP
  with:
    php-version: '8.1'
    tools: churn
  • Added support for blackfire extension on PHP 8.1.
- name: Setup PHP
  with:
    php-version: '8.1'
    extensions: blackfire
  • Tools pecl, phpize and php-config are now installed by default on Linux. Specifying these in tools input is no longer required.

  • The environment variable COMPOSER_NO_INTERACTION is now set to 1 by default, so using --no-interaction in composer commands is not required. (#547)

  • The environment is now considered self-hosted unless the GitHub hosted environment is detected. This should prevent broken PHP installs in self-hosted environments when the runner environment variable is not specified. (#554)

  • Added support to enable disabled extensions when required by tools. For this extensions are now processed before tools.

  • Added support to enable xml extension before installing other extensions using pecl. (#553)

  • Speed improvements

    • Reduced the initial I/O in script creation.
    • Reduced the number of PHP calls and it now uses php-config instead.
    • Reduced number of brew calls on macOS setup.
    • Windows builds for all PHP versions are now fetched from shivammathur/php-builder-windows releases as a faster cache with windows.php.net as a fallback.
    • SSL libraries for PHP 5.3 to 5.5 on Windows are now fetched in parallel.
    • PHP builds for PHP 5.3 to 5.5 should now use cached macports builds from shivammathur/php5-darwin.
  • Added support for installing tools using composer in different scopes. This allows installing two tools with different versions of a common dependency. (#549)

  • Added support to fail immediately when composer setup fails. (#548)

  • Added support to parse PECL extension versions when wrongly hyphenated. (#536)

  • Added support for composer phars from shivammathur/composer-cache with PHP version as now different PHP versions can have different composer versions for a release type.

  • Added setup-php.com as a fallback in addition to jsdeliver.com for script sources.

  • Fixed support for fallback sources for tools in Windows.

  • Fixed potential exponential backtracking in regex to parse extension input when installing extensions from a git repository.

  • Fixed adding sudo to self-hosted Linux environments. (#555)

  • Fixed enabling disabled extensions with other extensions as dependencies. For example pecl_http, redis, etc.

  • Fixed a bug where the ini file used for enabling extensions by pecl in the scan directory was deleted when disabling extensions.

  • Fixed misconfiguration which prevented package lists from updating on Linux.

  • Fixed the fallback to install PowerShell packages using Install-Module on Windows when GitHub Releases is down. Also fixed not adding the Import-Module command to the profile when it fallbacks.

  • Fixed tools setup to not overwrite an existing tool with a broken one if it fails to set up.

  • Fixed an error when copying tools to a directory in PATH in tools setup.

  • Fixed parsing composer phars from snapshot channel for its version when is a stable version.

  • Fixed support for oci8 and pdo_oci extensions on Windows.

  • Fixed pecl_http setup.

  • Fixed restore-keys input in composer cache example in README with dependency range.

  • Fixed error in tools setup on self-hosted environments when composer's bin directory is not present.

  • Fixed tools.getLatestVersion to handle failing GitHub API call.

  • Fixed output on non-GitHub Action environments where GitHub Action specific command syntax was printed.

  • Fixed a bug where the status variable was overwritten in ppa.sh and was breaking the status output.

  • Fixed scope of variables to local in bash scripts.

  • Fixed setting extension stability in Add-Extension Function on Windows.

  • Fixed node-release workflow to add lib directory to the packages.

  • Fixed sending coverage data to codecov on pull requests.

  • Refactored utils.fetch to its own module and mocked the http module using nock for fetch tests. Now the Node.js test suite does not make any external requests.

  • Refactored setting environment variables and adding to PATH.

  • Refactored setting outputs to functions with a check to only run on GitHub Actions.

  • Refactored extension functions to add_extension.sh and add_extension.ps1.

  • Refactored the default PHP packages for self-hosted Linux environments to a config file. Also added cgi, fpm, mysql, opcache, pgsql and zip to the list.

  • Refactored Nightly PHP setup to Install-PhpNightly Function on Windows.

  • Refactored CI workflows and templates.

  • Rename common.sh to unix.sh.

  • Update security policy to specify clearly that the latest patch versions of both v1 and v2 are supported for security updates.

  • Updated Node workflows to use 16.x.

  • Updated README for the release.

  • Updated Node.js dependencies.


Thanks! @jrfnl and @villfa for the contributions 🚀

Follow for updates

setup-php reddit setup-php twitter setup-php status