如何使基于 phpcs 输出的 Scrutinizer 构建失败?

How to fail a build on Scrutinizer based on phpcs output?

我已经尝试将 Scrutinizer 配置为每当 CodeSniffer 分析 returns 一些错误但运气不好时失败。

这是我到目前为止尝试过的方法:

V1:

build:
  tests:
    override:
        command: './vendor/bin/phpcs ./src --report=checkstyle --report-file=cs-data'
        analysis:
          file: 'cs-data'
          format: 'php-cs-checkstyle'

V2:

build:
  tests:
    override:
      - 'phpcs-run'

我的工具和build_failure_conditions:

tools:
  php_code_sniffer:
    config:
      standard: "PSR2"
checks:
  php:
    code_rating: true
    duplication: true
build_failure_conditions:
  - 'issues.label("coding-style").new.exists'

缺少什么?

TLDR;您似乎没有指定要扫描哪些文件夹的错误。

尝试使用以下方法:

build:
  tests:
    override:
      - 'phpcs-run --standard=custom/standard/ruleset.xml --ignore=app/*/*/Test/ app/dir1/ app/dir2/ app/other/folder'

一些需要我澄清的事情:

  • scrutinizer 目前不支持 phpcs 命令失败(类似于 phpunit),因为这会阻止问题显示在 UI.
  • 解决方法是设置一个失败条件(您已经这样做了),例如是否存在编码风格问题,那么构建就会失败。

我目前正在使用:

build_failure_conditions:
  - 'issues.label("coding-style").new.exists'

Which makes the inspection look like this

有关如何设置失败条件的更多信息: https://scrutinizer-ci.com/docs/configuration/build_status