PHPStan in GitLab

PHPStan in GitLab

Let's get PHPStan working with Gitlab and code quality.

In your .gitlab-ci.yml add a new section:

phpstan:
  stage: testing
  needs:
  - composer
  script:
  - php -d memory_limit=-1 vendor/bin/phpstan analyse -c phpstan.neon --error-format gitlab > phpstan-report.json
  artifacts:
    paths:
    - "phpstan-report.json"
    expire_in: 14 days
    when: always
    reports:
      codequality: "./phpstan-report.json"

If your phpstan config isn't located in phpstan.neon change the portion after the -c to be the correct file. You might also need to change the stage: testing to match with your stages setup.

One thing we've run into a few times with our main app was that PHPStan would fail on Gitlab but be passing on our local machines. While we still have no idea what causes this issue we added a manual job to run for these times:

phpstanmanual:
  stage: testing
  needs:
  - composer
  script:
  - php -d memory_limit=-1 vendor/bin/phpstan analyse -c phpstan.neon
  when: manual

After it is completed running, click on the specific job to view what the errors are.

Thanks, for reading, please let me know if you found this helpful or have questions over on Twitter: twitter.com/guywarner801