Ruby Rubocop忽略.Rubocop.yml中指定的排除项
我在CircleCI使用Rubocop。它被配置为忽略db文件夹。但它仍在以例外的方式卷土重来。我在CI中使用的自定义rake任务可能就是原因。如何修改它以使其忽略那些排除的文件/目录 鲁博科普耙 .rubocop.ymlRuby Rubocop忽略.Rubocop.yml中指定的排除项,ruby,git,rubocop,Ruby,Git,Rubocop,我在CircleCI使用Rubocop。它被配置为忽略db文件夹。但它仍在以例外的方式卷土重来。我在CI中使用的自定义rake任务可能就是原因。如何修改它以使其忽略那些排除的文件/目录 鲁博科普耙 .rubocop.yml 如果从Rake任务运行rubocp,这是预期的行为。也看到这个 我个人建议用带命令行参数的shell脚本来运行它。 要实现对已更改文件的检查,您可以结合使用。我认为这不是我想要的。如果发现异常,我希望构建失败。不要留下评论。这也会使构建失败-评论是可选的。 # frozen_
如果从Rake任务运行rubocp,这是预期的行为。也看到这个 我个人建议用带命令行参数的shell脚本来运行它。
要实现对已更改文件的检查,您可以结合使用。我认为这不是我想要的。如果发现异常,我希望构建失败。不要留下评论。这也会使构建失败-评论是可选的。
# frozen_string_literal: true
namespace :rubocop do
require 'rubocop/rake_task'
desc 'Run RuboCop on entire project'
RuboCop::RakeTask.new('all') do |task|
task.fail_on_error = true
end
desc 'Run RuboCop on the project based on git diff(DIFF_BRANCH environment variable)'
RuboCop::RakeTask.new('git_diff') do |task|
task.patterns = patterns_for_changed_files
task.fail_on_error = true
end
def changed_files
diff_branch = ENV['DIFF_BRANCH'] || 'staging'
cmd = %(git diff-tree -r --no-commit-id --diff-filter=M --name-only HEAD origin/#{diff_branch})
diff = `#{cmd}`
diff.split "\n"
# diff.gsub!(/^(db\/|vendor\/|tmp\/|lib\/|test\/|bin\/)/, '').split "\n"
end
def patterns_for_changed_files
patterns = []
patterns + changed_files
end
end
AllCops:
Exclude:
- 'vendor/**/*'
- 'tmp/**/*'
- 'lib/**/*'
- 'test/**/*'
- 'bin/*'
- 'config/**/*.yml'
- 'db/**/*'
- 'db/schema.rb'