phpcs gitlab

Gitlab Report for PHP_CodeSniffer (display the violations in the Gitlab CI/CD Code Quality Report)

39
3
PHP

Gitlab Report for PHP_CodeSniffer

Main workflow
codecov

This library adds a custom report to PHP_CodeSniffer (phpcs) to generate a codequality artifact, which can be used by Gitlab CI/CD.
The custom report will be generated in the Code Climate format and allows Gitlab CI/CD to display the violations in the Code Quality report.

Installation

Install this library using Composer:

composer require --dev micheh/phpcs-gitlab

Then adjust your .gitlab-ci.yml to run PHP_CodeSniffer with the custom reporter and to gather the codequality artifacts:

phpcs:
  script: vendor/bin/phpcs --report=full --report-\\Micheh\\PhpCodeSniffer\\Report\\Gitlab=phpcs-quality-report.json
  artifacts:
    reports:
      codequality: phpcs-quality-report.json

The example above uses two reports, one to display in the build log (full) and one to generate the codequality artifact file in the Code Climate format.

Note: Gitlab currently does not support multiple codequality artifacts.
You will not be able to display the violations of multiple tools (e.g. PHP Code Sniffer & PHPStan) in the Code Quality report.

Inside the codequality artifact, Gitlab expects relative paths to the files with violations.
To generate relative paths with PHP Code Sniffer, set the basepath argument in your phpcs.xml.dist configuration file with <arg name="basepath" value="."/> or run phpcs with --basepath=. (adjust the base path as necessary).

References

License

The files in this archive are licensed under the BSD-3-Clause license.
You can find a copy of this license in LICENSE.md.