CI: migrate PHPStan to PrestaShop/.github action#30
Conversation
Replace the Docker-based phpstan.sh approach with the shared PrestaShop/.github PHPStan action. The old approach was failing because the prestashop/prestashop:latest Docker image now exits immediately (due to entrypoint changes), causing "No such container: temp-ps" errors. - Add tests/php/phpstan/ with version-specific neon configs for 8.1.7, 8.2.x, 9.1.x and develop - Add prepend-constants.php for PS 9.x bootstrap constants - Replace single Docker-based phpstan job with two action-based jobs: phpstan-74 (PS 8.x, PHP 7.4-8.1) and phpstan (PS 9.x, PHP 8.1-8.5) - Remove tests/phpstan.sh (no longer needed) Fixes #ISSUE Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Hello @mattgoud! This is your first pull request on statsbestproducts repository of the PrestaShop project. Thank you, and welcome to this Open Source community! |
Suppress three pre-existing PHPStan errors exposed by the new 8.1.7/8.2.x analysis that were not caught by the old Docker-based 1.7.x checks. These should be addressed in a separate code-quality PR. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add missing blank line after <?php in index.php (php-cs-fixer) - Add ignoreErrors for pre-existing PHPStan errors in phpstan-9.1.x.neon and phpstan-develop.neon (refs PrestaShop#31, PrestaShop#32) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Drop the 8.1.7 target to match the project-wide module cleanup Epic which standardizes native modules on PS 8.2+: - php.yml: phpstan-74 matrix now runs against 8.2.x only (PHP 7.4/8.1) - ps_versions_compliancy min bumped to 8.2.0 - remove the now-unreferenced phpstan-8.1.7.neon config Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolve the 3 pre-existing PHPStan errors directly and drop all ignoreErrors entries from the neon configs: - remove the unused $html property (declared, never read) - replace isset() on the non-nullable ModuleGridCore::$_direction with !empty() - declare the executeS() row shape via @var PHPDoc so the avgPriceSold/totalPriceSold array offsets are recognized Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
| uses: prestashop/github-action-php-lint/8.1@master | ||
| # Run PHPStan against the module (PHP 7.4 – 8.1) | ||
| phpstan-74: | ||
| name: PHPStan (PHP 7.4 - 8.1) |
| runs-on: ubuntu-latest | ||
| strategy: | ||
| matrix: | ||
| presta_version: ['9.1.x', 'develop'] |
There was a problem hiding this comment.
| presta_version: ['9.1.x', 'develop'] | |
| presta_version: ['9.0.3', '9.1.x', 'develop'] |
Maybe 9.0.3 is still relevant even if the branch doesn't exist anymore, this ensure the module is still compatible with old PS versions
There was a problem hiding this comment.
ok @jolelievre done, added 9.0.3 to the matrix and created the matching tests/php/phpstan/phpstan-9.0.3.neon (the config path is resolved from presta_version, so the job would have failed without it).
…9.0.3 - php-linter: add missing intermediate syntax checks (7.3, 8.1, 8.2, 8.3, 8.4) - phpstan-74: lower floor to PHP 7.2 (real minimum for PS 8.2.x) - phpstan: add PrestaShop 9.0.3 (tag, the 9.0.x branch no longer exists) + neon config Part of PrestaShop/PrestaShop#41648 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
PrestaShop 9.0.x supports PHP 8.1 up to 8.4 only, so the cross-product matrix was generating an invalid 9.0.3 x 8.5 combination. Switch to an explicit include list so each PrestaShop version tests its proper PHP floor and ceiling (9.0.3: 8.1/8.4, 9.1.x and develop: 8.1/8.5). Also make the "Prepare PHP env" step name reflect the actual matrix version. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
correction: this is a major bump, not a patch — version set to 3.0.0 (statsbestproducts.php + config.xml) |
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4e424d7 to
89eac96
Compare
|
PR merged, well done! Message to @PrestaShop/committers: do not forget to milestone it before the merge. |
tests/phpstan.sh) was failing withError response from daemon: No such container: temp-psbecause theprestashop/prestashop:latestDocker image now exits immediately due to entrypoint changes, causing the volume container to disappear before PHPStan can use it.This PR migrates to the shared
PrestaShop/.githubPHPStan action (as used byps_googleanalytics,ps_emailsubscription,blockreassurance):- Adds
tests/php/phpstan/with version-specific neon configs for8.2.x,9.0.3,9.1.xanddevelop- Replaces the single Docker-based job with two action-based jobs:
phpstan-74(PS 8.2.x / PHP 7.2–8.1) andphpstan(PS 9.x —9.0.3,9.1.x,develop/ PHP 8.1–8.5, with9.0.3capped at PHP 8.4 since PS 9.0.x does not support 8.5)- Expands the
php-linterjob to check every PHP version from 7.2 to 8.5 (adds the missing 7.3, 8.1, 8.2, 8.3, 8.4 intermediates)- Removes
tests/phpstan.sh- Aligns the module on the PS 8.2+ baseline targeted by the cleanup Epic: drops the
8.1.7PHPStan target and bumpsps_versions_compliancymin to8.2.0- Fixes the 3 pre-existing PHPStan errors directly (instead of suppressing them via
ignoreErrors): removes the unused$htmlproperty, replacesisset()on the non-nullableModuleGridCore::$_directionwith!empty(), and declares theexecuteS()row shape via a@varPHPDoc so theavgPriceSold/totalPriceSoldoffsets are recognized. AllignoreErrorsblocks are now empty/removed.Part of PrestaShop/PrestaShop#41648