thecodingmachine / washingmachine

与 Gitlab 集成的 CI 工具,用于显示 CRAP 指数中的差异

安装: 143,917

依赖项: 0

建议者: 0

安全: 0

星标: 22

关注者: 7

分支: 1

开放问题: 4

类型:项目

v1.2.0 2017-06-12 14:36 UTC

This package is auto-updated.

Last update: 2024-09-06 23:31:21 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License Scrutinizer Code Quality Build Status Coverage Status

洗衣机

洗衣机 是一个工具,通过将 PHPUnit 与 Gitlab CI 集成,帮助您编写更干净的代码。

因此,当您在 Gitlab 中执行合并请求时,洗衣机会添加有关您的代码质量的有关信息。

使用方法

为您的项目启用 Gitlab CI

首先,您需要一个启用了持续集成的 Gitlab 项目(因此需要一个包含 .gitlab-ci.yml 文件的项目)。

创建个人访问令牌

然后,您需要一个 Gitlab API 个人访问令牌

明白了吗?

添加秘密变量

现在,我们需要将此令牌添加为您的项目的“秘密变量”(以便 CI 脚本可以修改合并请求注释)。

转到您的 Gitlab 项目页面

设置 ➔ CI/CD 管道 ➔ 秘密变量

  • 键:GITLAB_API_TOKEN
  • 值:您在上一步骤中收到的令牌

配置 PHPUnit 输出 "clover" 测试文件

让我们配置 PHPUnit。转到您的 phpunit.xml.dist 文件并添加

<phpunit>
    <logging>
        <log type="coverage-clover" target="clover.xml"/>
    </logging>
</phpunit>

注意:“clover.xml” 文件必须写在您的 GIT 仓库根目录下,因此如果您的 phpunit.xml.dist 位于子目录中,正确的路径可能是“../../clover.xml”。

或者,洗衣机也知道如何读取 Crap4J 文件。Crap4J 文件包含 Crap 分数,但不包含代码覆盖率分数,因此您将从 Crap4J 获得略少的数据。预期文件名为 "crap4j.xml"。

配置 Gitlab CI yml 文件

现在,我们需要安装洗衣机,并让它运行。

.gitlab-ci.yml

image: php:7.1

test:
  before_script:
   - cd /root && composer create-project thecodingmachine/washingmachine washingmachine ^2.0
 
  script:
   - phpdbg -qrr vendor/bin/phpunit
 
  after_script:
   - /root/washingmachine/washingmachine run -v

请注意,我们需要确保已安装 PHPDbg 扩展。还要确保您的 Docker 实例上未启用 Xdebug。Xdebug 也可以返回代码覆盖率数据,但不如 PHPDbg 准确,可能导致错误的 CRAP 分数结果。

支持的 Gitlab 版本

  • 洗衣机 v2.0+ 支持 Gitlab 9 及以上版本。

如果您需要支持旧版本的 Gitlab,以下是洗衣机版本支持的 Gitlab 版本列表

  • 洗衣机 v1.0 => v1.2 支持 Gitlab 8。
  • 洗衣机 v1.2+ 支持 Gitlab 8 及以上到 Gitlab 9.5。

在评论中添加额外数据

当洗衣机在您的合并请求中添加评论时,您可以要求它添加额外的文本。此文本必须存储在文件中。

您只需这样做

washingmachine run -f file_to_added_to_comments.txt

当然,此文件可能是 CI 工具的输出。

洗衣机只会显示文件的前 50 行。如果文件更长,将在评论末尾添加一个下载文件的链接。

您还可以通过重复使用“-f”选项添加多个文件

washingmachine run -f file1.txt -f file2.txt

提交问题

当合并请求打开时,洗衣机将在合并请求中直接发布评论。

如果不存在合并请求,洗衣机可以在您的 Gitlab 项目中提交问题。

要提交问题,请使用 --open-issue 选项

washingmachine run --open-issue

提示:通常,当构建失败时,您希望有条件地添加 --open-issue 标签。另外,如果合并请求与构建匹配,则忽略 --open-issue

在提交中添加评论

洗衣机可以直接在提交中添加注释(除了在合并请求中添加注释)。

要在提交中添加注释,请使用 --add-comments-in-commits 选项。

washingmachine run --add-comments-in-commits

注意:此选项在1.x版本中默认启用,而在2.x版本中需要手动启用。对于每条注释,都会向提交者发送一封邮件。在大规模提交中,这可能会生成大量邮件。已经提醒您了 :)