GH Actions: run tests against PHP 8.2 #1175
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
TL;DR
PHP 8.2 is likely to cause significant amounts of deprecation notices again in most projects.
As Mockery is a testing tool and projects will use their tests as a starting point to start fixing their code, it would be wonderful for Mockery to be PHP 8.2 ready early (before PHP 8.2-beta1).
PR #1168, #1170 and #1174 fix the bulk of the issues in Mockery itself as found via Mockery's own tests. As of now and with the WIP current state of PHP 8.2, there are only 11 failing tests left.
To keep on top of what additional work is and will be still needed to make Mockery compatible with PHP 8.2, I propose to start running the tests against PHP 8.2 in GitHub Actions.
Commit details
GH Actions: run tests against PHP 8.2
... for early warning about problems which need addressing.
For now, a failing test run against PHP 8.2 won't stop the build.
GH Actions: allow for manually triggering a workflow
Triggering a workflow for a branch manually is not supported by default in GH Actions, but has to be explicitly allowed.
This is useful if, for instance, an external action script or composer dependency has broken.
Once a fix is available, failing builds for open PRs can be retriggered manually instead of having to be re-pushed to retrigger the workflow.
Ref: https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/
GH Actions: turn on error reporting
The default setting for
error_reporting
used by the SetupPHP action iserror_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT
anddisplay_errors
is set toOff
.For the purposes of CI, I'd recommend running with
-1
anddisplay_errors=On
to ensure all PHP notices are shown.PHPUnit: update configuration
PHPUnit 9.5.10 and 8.5.21 were released a while ago and contain a particular (IMO breaking) change:
Let's unpack this:
Previously (PHPUnit < 9.5.10/8.5.21), if PHPUnit would encounter a PHP native deprecation notice, it would:
As of PHPUnit 9.5.10/8.5.21, if PHPUnit encounters a PHP native deprecation notice, it will no longer do so. Instead PHPUnit will:
This commit reverts PHPUnit to the previous behaviour by adding
convertDeprecationsToExceptions="true"
to the PHPUnit configuration.It also adds the other related directives for consistency.
Refs: