Sha256: 61bf74759bed08ebfabd00ed36bf6eada20482d8a244528c555927c1cf6c4848

Contents?: true

Size: 1.26 KB

Versions: 34

Compression:

Stored size: 1.26 KB

Contents

#!/usr/bin/env ruby
# frozen_string_literal: true

require "English"

# This script is used to run Rubocop in CircleCI so that on branches only
# the changed files are checked and on master all files are checked.
#
# Additionally if rubocop configuration is changed, all files are checked, and
# if the commit description on a non-master branch includes [rubocop skip]
# then rubocop is skipped.

def run(command)
  puts "Running: #{command}"
  exit 1 unless system(command)
end

def rubocop_everything
  run("bundle exec rubocop --parallel")
end

begin
  if ENV["CIRCLE_BRANCH"] == "master"
    rubocop_everything
  else
    git_commit_desc = `git log --format=%B -n 1 $CIRCLE_SHA1`
    puts "Git commit: #{git_commit_desc}"
    if git_commit_desc.match?(/\[rubocop skip\]/i)
      puts "Skipping RuboCop"
      exit 0
    end

    changed_files = `git diff --diff-filter=d --name-only origin/master...$CIRCLE_BRANCH`.split("\n").join(" ")
    raise "Failed to identify changed files" unless $CHILD_STATUS.success?

    if changed_files.strip.empty? || changed_files.include?(".rubocop")
      rubocop_everything
    else
      run("bundle exec rubocop --force-exclusion #{changed_files}")
    end
  end
rescue StandardError => ex
  puts "Error: #{ex.message}"
  rubocop_everything
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
ezcater_rubocop-1.4.1 bin/circle_rubocop.rb
ezcater_rubocop-1.4.0 bin/circle_rubocop.rb
ezcater_rubocop-1.3.0 bin/circle_rubocop.rb
ezcater_rubocop-1.2.0 bin/circle_rubocop.rb
ezcater_rubocop-1.1.1 bin/circle_rubocop.rb
ezcater_rubocop-1.1.0 bin/circle_rubocop.rb
ezcater_rubocop-1.0.2 bin/circle_rubocop.rb
ezcater_rubocop-1.0.1 bin/circle_rubocop.rb
ezcater_rubocop-1.0.0 bin/circle_rubocop.rb
ezcater_rubocop-0.61.1 bin/circle_rubocop.rb
ezcater_rubocop-0.61.0 bin/circle_rubocop.rb
ezcater_rubocop-0.58.4 bin/circle_rubocop.rb
ezcater_rubocop-0.58.3 bin/circle_rubocop.rb
ezcater_rubocop-0.58.2 bin/circle_rubocop.rb
ezcater_rubocop-0.58.1 bin/circle_rubocop.rb
ezcater_rubocop-0.58.0 bin/circle_rubocop.rb
ezcater_rubocop-0.58.0.rc1 bin/circle_rubocop.rb
ezcater_rubocop-0.58.0.rc0 bin/circle_rubocop.rb
ezcater_rubocop-0.57.4 bin/circle_rubocop.rb
ezcater_rubocop-0.57.3 bin/circle_rubocop.rb