-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upgrade to PHPUnit v10 #741
Conversation
Replaces #736 |
20cd2c1
to
d72bef7
Compare
Argh, this is possibly blocked by laminas/laminas-ci-matrix-action#189 and laminas/laminas-continuous-integration-action#130 |
Fun! We can "hide" the SEGFAULTs by temporarily relying on Trade-offs, eh!? |
Can't we add it as extension to be installed for this package (at least until that addressed on the upstream)? Alternatively we can also use a pre-install script to run arbitrary commands as root: https://github.com/laminas/laminas-continuous-integration-action/blob/1.33.x/entrypoint.sh#L162 That might help to only install a coverage driver for specific jobs and allow moving this forward. |
I really just need to do the upstream releasing/fixing: however you put the problem, the blocker is me and my constantly clogged schedule :S |
I'd be fine with using |
I'll send a different PR to tackle this, I've the changes in my local history 👍 |
Scratch that, we can already enable PCOV here and solve the issue. I've pushed an extra commit and rebased the baseline PR to verify that CI works for both. @Ocramius @asgrim please approve the workflow run (whenever) on both PRs to make sure things are fine 👍 |
Silly me... I've overlooked the generated command for infection on the matrix 🤦 Well, that would never work 🤣 |
All the things I can think of are horrendous... let's release CI-action v2 😆 |
Yeah, and |
@lcobucci doing some paid work, then picking up OCI-CatalogService again |
@Ocramius should we close this or bump to v11? 😅 |
If it works, we can merge here, although no idea if it does :P My OSS efforts have been almost zero this year, sorry. |
Some people - like me - have a tweaked/opinionated global Git configuration that forces GPG signatures everywhere, which basically breaks the tests. This standardises the expected configuration for tests, preventing unexpected breakages. Signed-off-by: Luís Cobucci <[email protected]>
PHPUnit 10.x only accepts static data providers, so... Signed-off-by: Luís Cobucci <[email protected]>
d5789e6
to
8e95060
Compare
@Ocramius I had some time here... shall we try again? |
3d95673
to
8120fb9
Compare
More info: sebastianbergmann/phpunit#5063 Signed-off-by: Luís Cobucci <[email protected]>
Signed-off-by: Luís Cobucci <[email protected]>
8120fb9
to
64d860d
Compare
@Ocramius all the checks should be fine, except for Infection as it still requires laminas-ci-matrix-action 2 to be released (drop phpdbg and use pcov). |
@lcobucci should we perhaps skip running it via |
ec96dc1
to
7d3abac
Compare
…for coverage Trying to chase @lcobucci's work on Roave/BackwardCompatibilityCheck#741 See schema: * https://github.com/laminas/laminas-ci-matrix-action/blob/7f7976e6faf1ee8fcfca77cf0487cc4d0b486f11/laminas-ci.schema.json This commit should: * remove automatic infection pipeline entry * add infection run via `pcov` coverage driver Fixes: ``` Error: ] Project tests must be in a passing state before running Infection. Infection runs the test suite in a RANDOM order. Make sure your tests do not have hidden dependencies. You can add these attributes to `phpunit.xml` to check it: <phpunit executionOrder="random" resolveDependencies="true" ... If you don't want to let Infection run tests in a random order, set the `executionOrder` to some value, for example <phpunit executionOrder="default" Check the executed command to identify the problem: '/usr/bin/phpdbg8.2' '-qrr' '/github/workspace/vendor/bin/phpunit' '--configuration' '/tmp/infection/phpunitConfiguration.initial.infection.xml' '--coverage-xml=/tmp/infection/coverage-xml' '--log-junit=/tmp/infection/junit.xml' PHPUnit reported an exit code of 1. ```
…for coverage Trying to chase @lcobucci's work on Roave/BackwardCompatibilityCheck#741 See schema: * https://github.com/laminas/laminas-ci-matrix-action/blob/7f7976e6faf1ee8fcfca77cf0487cc4d0b486f11/laminas-ci.schema.json This commit should: * remove automatic infection pipeline entry * add infection run via `pcov` coverage driver Fixes: ``` Error: ] Project tests must be in a passing state before running Infection. Infection runs the test suite in a RANDOM order. Make sure your tests do not have hidden dependencies. You can add these attributes to `phpunit.xml` to check it: <phpunit executionOrder="random" resolveDependencies="true" ... If you don't want to let Infection run tests in a random order, set the `executionOrder` to some value, for example <phpunit executionOrder="default" Check the executed command to identify the problem: '/usr/bin/phpdbg8.2' '-qrr' '/github/workspace/vendor/bin/phpunit' '--configuration' '/tmp/infection/phpunitConfiguration.initial.infection.xml' '--coverage-xml=/tmp/infection/coverage-xml' '--log-junit=/tmp/infection/junit.xml' PHPUnit reported an exit code of 1. ```
I managed to get things running in a similar way here: Ocramius/DoctrineBatchUtils#392 That schema file is a blessing :D |
…coverage support Ref: https://github.com/laminas/laminas-ci-matrix-action/blob/7f7976e6faf1ee8fcfca77cf0487cc4d0b486f11/laminas-ci.schema.json Ref: Ocramius/DoctrineBatchUtils#392 Ref: Roave/BackwardCompatibilityCheck#741 Ref: laminas/laminas-continuous-integration-action#130 Ref: laminas/laminas-ci-matrix-action#189 Ref: sebastianbergmann/php-code-coverage#945 Ref: sebastianbergmann/php-code-coverage@c304be7
Given the plans for laminas-continuous-integration-action v2 is to always ship PCOV, we can simply enable it here to allow us to detach the two processes. This temporarily disables the default infection job and provides a new configuration that uses PCOV instead. Signed-off-by: Luís Cobucci <[email protected]>
7d3abac
to
d298f72
Compare
@Ocramius the schema file helps a lot 👍 I took a slightly different approach so that we always run against the minimum supported PHP version (according to https://github.com/laminas/laminas-ci-matrix-action?tab=readme-ov-file#job-element it should work). I think everything will just work 😄 |
We do this not because it is easy, but because we believed it would be easy. |
🚢 thanks @lcobucci! |
Fix #740
This makes the test suite compatible with the latest PHPUnit version and upgrades everything to it, which removes the SEGFAULTs we were having previously.
(the first commit is from #737, a rebase to sync is more than enough to remove it from the last merged branch)