PHP Project Adds GitHub Actions for CI/CD

Published On2022-02-24

PHP Project Moves to GitHub Actions from Azure Pipelines for CI/CD
The PHP project currently use, and has previously used, several Continuous Integration / Continuous Delivery (CI/CD) platforms to test the PHP source code on various platforms and configurations each time commits are made to the source code repository.

PHP's test suite includes tests on Linux, Windows, and Mac OS platforms, as well as tests on different configurations such as tests with and without thread-safety, JIT, and Opcache. Additionally, it includes tests with database drivers such as Oracle database, and MySQL. There are over 17,000 tests covering various edge cases and features, and with various platforms and flags to test on, PHP's CI/CD process requires a significant amount of computing resources.

PHP historically used Travis CI, but they have been limiting their allowance of free builds for open-source repositories after being acquired by Idera.

PHP project currently uses AppVeyor for its Windows builds, Azure Pipelines for Mac OS and Linux tests, and Cirrus CI for FreeBSD builds.

After the canonical PHP Git repository has been moved to GitHub on March 2021, there has been further integrations with GitHub, such as allowing GitHub Issues to be used in place of the PHP's former bug tracker at bugs.php.net.

GitHub also offers its own CI/CD feature named GitHub Actions. It's relatively new to CI/CD space, but offers a more tightly integrated alternative to other CI/CD solutions with better integration with GitHub repositories, and free builds for open-source projects. GitHub Actions follows a very similar configuration format to Azure Pipelines, and PHP project already uses it on some routine tasks such as automatic up-keep of pull requests and issues.

PHP project recently started to use GitHub Actions for Linux and Mac OS builds. These workflows run in addition to existing Azure Pipelines builds for Linux and Mac OS for the time being. The new workflow is triggered for each code push to PHP branches 7.4, 8.0, 8.1, and main development branch. It builds and runs tests for PHP, including tests for several bundled PHP extensions, thread-safety on and off, JIT/Opcache on and off, and more.

PHP's current CI/CD services in use
PHP's CI/CD services in use after adding GitHub Actions.

With the wide availability of supported platforms on GitHub Actions, it is possible to consolidate the PHP project's current CI/CD space to GitHub Actions in the future.

In other news on PHP.Watch

All NewsFeed
PHP 8.3 Release Managers Elected

PHP 8.3 Release Managers Elected

Release Managers for the upcoming PHP version 8.3 were selected with a community vote.
PHP 8.2 Released

PHP 8.2 Released

PHP 8.2 is now generally available!
All PHP 7.x versions are now EOL

All PHP 7.x versions are now EOL

PHP 7.4, the last PHP version in 7.x series, reached its End-of-Life date on November 28th. PHP 7.4 received one year of security fixes (but no bug fixes) from November 2021. PHP 7.4.33 is the last PHP version.
Subscribe to PHP.Watch newsletter for monthly updates

You will receive an email on last Wednesday of every month and on major PHP releases with new articles related to PHP, upcoming changes, new features and what's changing in the language. No marketing emails, no selling of your contacts, no click-tracking, and one-click instant unsubscribe from any email you receive.