禁止しているステートメントがGitリポジトリ内に含まれていないかJenkins氏に監視させる
ウチのシマじゃその関数は禁止じゃけぇの
弊社ではvar_dumpの使用を原則禁止にしている。
デバッグのために入れたvar_dumpをリリースコードに残してしまうという事故を無くすためである。
でも手軽に使えて便利だし、「一瞬だけだから」と思って使ってしまうかもしれない。
また、var_dumpやprint_r以外で配列やオブジェクトをダンプできない環境では、使用せざるを得ない。
リリースコードにvar_dumpが入ってしまう可能性をゼロにはできない気がしたので、Jenkinsに監視してもらうことにした。
スクリプトを作成する
下記のようなスクリプトをgit-grep-wc.sh
という名前で作成する。
#!/bin/sh output=`git grep $1` echo $output 1>&2 exit `echo -n ${output} | wc -w`
作成したスクリプトを適当な場所に置き、実行可能にする。
[prompt]$ sudo mv git-grep-wc.sh /usr/local/bin/git-grep-wc.sh [prompt]$ sudo chmod a+x /usr/local/bin/git-grep-wc.sh
var_dumpがどこかに記述されたgitリポジトリ内で git-grep-wc.sh var_dump
を実行すると、
実行したスクリプトは異常終了する(戻り値はマッチした行数)
Jenkins のプロジェクトに登録する
下の画像のように、ビルドの内容としてスクリプトを登録する。
ワークエリア内のコードにvar_dumpやprint_rが記述されているとスクリプトは異常終了するので、 ビルドは失敗となり、何かしらのアラートが届くという仕組み。
git-grepの結果はstderrに出力されるので、ビルドログ等を見ればどこに問題があるのかがわかり、すぐに対応ができます。