Gitのpre-commitフックでgruntビルドを実行

前回の記事でJS Hint、CSS Lint 等をGruntを使って実行する方法を書いたが、gruntビルド自体を実行することを忘れてコミットしてしまったらあまり意味が無いので、コミットする直前に実行するようにしてみた。

プロジェクトの.git/hooks以下に pre-commitファイルを配置する。

#!/bin/sh

grunt build

pre-commitファイルには実行権限を付与

chmod u+x .git/hooks/pre-commit

これでgit commit する時にgruntビルドが走り、エラーがあった場合はcommitが中止されるようになる。必ずチェックが走ったものしかコミットが出来なくなるため、おかしなものが上がってしまうことがなくなる。

ただこれだと、一部の修正だけをコミットしたい場合、それ以外のワークツリー上にあるファイルのせいでビルドエラーになった場合、それを直すまでコミットができなくなってしまう。インデックスに存在するファイルに対してgruntビルドができたらいいなあ。