PHP Project Adds GitHub Actions for CI/CD

Published On25 Feb 2022

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 Released!

PHP 8.3 Released!

PHP 8.3 was released today, containing over 1,000 commits from over 100 contributors.
First PHP 8.3 Release Candidate is now available for testing

First PHP 8.3 Release Candidate is now available for testing

The first release candidate (RC1) for PHP 8.3 is now released, along with Windows QA builds and Docker images.
PHP 8.3 Beta Released

PHP 8.3 Beta Released

The first beta release of the upcoming PHP 8.3 is released.
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.