mridang/cpd-annotations

将CPD风格的XML报告转换为GitHub拉取请求注解,通过Checks API实现。此脚本旨在用于您的GitHub Action中。

0.0.1 2020-04-05 15:49 UTC

This package is auto-updated.

Last update: 2024-09-06 01:20:29 UTC


README

将CPD风格的XML报告转换为GitHub拉取请求注解(通过Checks API)。此脚本旨在用于您的GitHub Action中。

这意味着您不再需要搜索GitHub Action日志文件或控制台输出。无需解释不同工具格式化不同的消息。相反,您可以专注于您的拉取请求,而且无需离开拉取请求区域。

Logs Example

上下文示例 图片来源:https://github.com/mheap/phpunit-github-actions-printer

安装

通过Composer安装二进制文件

composer require mridang/cpd-annotations

示例用法

cpd2pr可用于已存在的CPD报告XML报告。或者,您可以使用它以UNIX管道符号表示法将其链接到现有的cli命令中。

在您的GitHub Action工作流程中运行以下命令之一

处理CPD格式文件

vendor/bin/cpd2pr /path/to/cpd-report.xml

可用选项

  • --graceful-warnings:如果只有警告则不退出错误代码
  • --colorize:彩色输出。如果同一lint脚本需要在本地命令行和远程GitHub Actions上使用,则非常有用。使用此选项,错误和警告在命令行上更容易区分,输出仍然与GitHub注解兼容

管道传输另一个命令的输出

这适用于任何生成CPD格式报告的命令。以下是一些示例

使用PHCPD

phcpd . xml codesize,naming,unusedcode,controversial,design --exclude libs,var,build,tests --ignore-violations-on-exit | vendor/bin/cpd2pr

示例GitHubAction工作流程

如果您使用shivammathur/setup-php来设置PHP,则cpd2pr二进制文件包含在内

# ...
jobs:
    phcpd-analysis:
      name: phcpd static code analysis
      runs-on: ubuntu-latest
      steps:
          - uses: actions/checkout@v2
          - name: Setup PHP
            uses: shivammathur/setup-php@v1
            with:
                php-version: 7.3
                coverage: none # disable xdebug, pcov
                tools: cpd2pr
          - run: |
                composer install # install your apps dependencies
                vendor/bin/phcpd . xml codesize,naming,unusedcode,controversial,design --exclude libs,var,build,tests --ignore-violations-on-exit | cpd2pr

如果您使用自定义PHP安装,则您的项目需要要求mridang/cpd-annotations

# ...
jobs:
    phcpd-analysis:
      name: phcpd static code analysis
      runs-on: ubuntu-latest
      steps:
          - uses: actions/checkout@v2
          - name: Setup PHP
            run: # custom PHP installation
          - run: |
                composer install # install your apps dependencies
                composer require mridang/cpd-annotations # install cpd2pr
                vendor/bin/phcpd . xml codesize,naming,unusedcode,controversial,design --exclude libs,var,build,tests --ignore-violations-on-exit | vendor/bin/cpd2pr

资源

GithubAction问题匹配器