我在GitHub操作工作流中运行PHPStan和PHPMD.在本地,这两个工具都会返回问题列表,但在GitHub操作中,不会报告任何问题.我已经确保在GitHub Actions lspwd中的道路是正确的.我不知道我真正需要钻研的是什么.

当地环境:

  • 拉威尔·赛尔
  • PHP版本:8.2.12
  • PHPStan版本:1.10.47
  • Phpmd版本:2.14.1laravel我使用※版本是为了避免错误.

GitHub操作环境:

  • 运行者:ubuntu-latest
  • PHP版本:8.2(在工作流中配置)
  • Phpmd版本:2.14.1laravel我使用※版本是为了避免错误.

PHPStan和PHPMD在工作流中设置,如下所示:

  - name: Run PHPStan
run: |
./vendor/bin/phpstan analyse --error-format=raw --no-progress --memory-limit=1G --configuration=./phpstan.neon | reviewdog -f=phpstan -name="PHPStan" -reporter=github-pr-review -level=warning

- name: Run PHPMD
run: |
  php /usr/local/bin/phpmd.phar ./app/Exceptions,./app/Http,./app/Models,./app/Contracts,./app/Repositories,./app/Services,./routes,./tests checkstyle ./phpmd.xml | reviewdog -f=checkstyle -name="PHPMD" -reporter=github-pr-review -level=warning

登录GitHub操作

- PHPStan -
Run ./vendor/bin/phpstan analyse --error-format=raw --no-progress --memory-limit=1G --configuration=./phpstan.neon | reviewdog  -f=phpstan -name="PHPStan"  -reporter=github-pr-review -level=warning

  ./vendor/bin/phpstan analyse --error-format=raw --no-progress --memory-limit=1G --configuration=./phpstan.neon | reviewdog  -f=phpstan -name="PHPStan"  -reporter=github-pr-review -level=warning
  shell: /usr/bin/bash -e {0}
  env:
    COMPOSER_PROCESS_TIMEOUT: 0
    COMPOSER_NO_INTERACTION: 1
    COMPOSER_NO_AUDIT: 1
    REVIEWDOG_GITHUB_API_TOKEN: ***

- PHPMD -    
Run php /usr/local/bin/phpmd.phar ./app/Exceptions,./app/Http,./app/Models,./app/Contracts,./app/Repositories,./app/Services,./routes,./tests checkstyle phpmd.xml | reviewdog -f=checkstyle -name="PHPMD" -reporter=github-pr-review -level=warning

  php /usr/local/bin/phpmd.phar ./app/Exceptions,./app/Http,./app/Models,./app/Contracts,./app/Repositories,./app/Services,./routes,./tests checkstyle phpmd.xml | reviewdog -f=checkstyle -name="PHPMD" -reporter=github-pr-review -level=warning
  shell: /usr/bin/bash -e {0}
  env:
    COMPOSER_PROCESS_TIMEOUT: 0
    COMPOSER_NO_INTERACTION: 1
    COMPOSER_NO_AUDIT: 1
    REVIEWDOG_GITHUB_API_TOKEN: ***

有没有人遇到过这个问题,或者有人能建议是什么原因导致了本地环境和CI环境之间的差异?

推荐答案

从运行PHPStan的命令中删除以下部分:

  • --error-format=raw
  • | reviewdog -f=phpstan -name="PHPStan" -reporter=github-pr-review -level=warning

因此,基本上可以像在本地运行一样运行PHPStan:

./vendor/bin/phpstan analyse --no-progress --memory-limit=1G --configuration=./phpstan.neon

PHPStan自动检测它在GitHub操作中运行,并将输出GitHub操作理解的正确格式,以在发生错误的特定行上显示Pull请求中的错误.

Laravel相关问答推荐

laravel如何在Blade 模板中将元素添加到数组

Laravel Eloquent:组合列(或自定义属性)上的 Where 子句

如何更改 laravel sanctum 返回message: Unauthenticated.

Laravel 5 将错误发送到Electron邮件

Laravel 6 Passport 在错误的凭证上返回 400 Bad request

如何在 Laravel Passport 中获取刷新令牌?

Laravel 4:如何将 WHERE 条件应用于 Eloquent 类的所有查询?

PHP Laravel:如何设置或获取会话数据?

限制 Blade foreach 循环中的结果

控制器外部的 Laravel 访问请求对象

如何将对象(模型类型对象)插入到 Laravel 中特定索引号的集合对象中?

如何调试 Laravel 框架?

命令未定义异常

如何在laravel 5.1中使用url(路由)传递多个参数

Laravel 迁移 - 删除列

在 Laravel 5 控制器中找不到类App\Http\Controllers\DB

如何在 Laravel 5 中的每个相关输入字段旁边显示验证错误?

laravel如何访问具有表编号名称的列?

如何在没有日志(log)、没有信息的情况下调试 Laravel 错误 500

同一模型上的 Laravel 父/子关系