1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

差分ファイルだけRubocopをかけることで高速化するスクリプトを書いた

Posted at

Railsプロジェクトが肥大化するにつれてRubocopの所要時間も増大し、コミット前の待ち時間でカップ麺が作れそうなレベルになってしまいました。
そろそろどうにかしたいなと思い、Rubocopを高速化する策を講じてみたので、今回はそれを共有したいと思います。

スクリプト

スクリプトをコンテナの外で実行し、RubocopはRailsのDockerコンテナ内で走らせる想定です。

#!/bin/sh

# 削除されたファイルをRubocopの検査対象に含めるとエラーになるので除く
files=`git diff origin/develop --name-only --diff-filter=d | grep -e .rb -e .rake`

# 確認用にファイル一覧を出力する
echo ${files}

docker exec rails-container rubocop -a ${files}

まずdevelopブランチとのdiffを取り、変更のあったファイル名を取得しています。
削除されたファイルはRubocopにかけるとエラーになるので除外しています。
その中からgrepでRubyとRakeファイルだけを抽出し、Rubocopの引数として渡す流れです。
よければ必要に応じてアレンジするなどして使ってください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?