不同的Rubocop结果基于local或CircleCI

ajk*_*550 6 ruby ruby-on-rails circleci rubocop

我刚开始在我的Ruby on Rails项目中使用Rubocop并创建了一个git分支来重构并让Rubocop加速我想要的速度.当我运行命令时,我终于没有任何攻击

$ rubocop
Run Code Online (Sandbox Code Playgroud)

但是,我试图将Rubocop集​​成到我的CircleCI构建中,这就是我遇到麻烦的地方.这是我的circle.yml文件的相关部分:

test:
  post:
    - bundle exec rubocop
Run Code Online (Sandbox Code Playgroud)

问题是,本地Rubocop表示它正在检查68个文件,但在CircleCI上它说它正在检查5624个文件.因为它没有通过.什么会导致我在本地运行时获得不同的输出而不是CircleCI?

另外,如果我跑:

bundle exec rubocop
Run Code Online (Sandbox Code Playgroud)

在本地我得到了我期待的输出(68个文件,都很好).

ajk*_*550 5

我弄清楚了。

我不确定为什么,但由于某种原因,在我的本地主机上它忽略了供应商文件,但在 CircleCI 上却没有,所以我将其添加到 .rubocop.yml 文件中。

  • 一些额外的细节:CircleCI 将 gems 安装到 `vendor/` 文件夹中,这不是传统的 `rbenv` 设置中发生的情况。将“vendor/**/*”添加到“AllCops”下的“Exclude”键可以防止在运行“bundle exec rubocop”时扫描所有gem。Rubocop 文档:https://github.com/bbatsov/rubocop/blob/master/manual/configuration.md#include excepting-files (2认同)