circle ci がめっちゃ混むので [ci skip] を勝手につけたい

  • 10
    Like
  • 0
    Comment

書く!と勢いこんだものの、書く時間を何か得体の知れないモノに奪われてしまいましたので、
テクニックといいますか、みなさまの開発現場でも使えそうなものを投下しておきます。

circle ci が混んでるやと・・

人数もそれなりに増え、Go言語のコンパイルが日々日々遅くなるばかり。
毎日熾烈なコミットが繰り広げられる現場で、ついにCIが大渋滞してきました。

終わらない・・終わらないんです・・・Circle CIがっ・・・。
一個回るのにxxx分かかるんです。待ってられないのです・・。

image

WIPやと・・・!
レイアウト修正やと・・・! HTMLの修正にテストをがっちり動かす必要あるのか・・!

          ____
        /      \
       /  ─    ─\
     /    ⌒   ⌒  \     ハハッ ワロス
     |       ,ノ(、_, )ヽ    |
      \      トェェェイ   /
       /   _ ヽニソ,  く

てなことでCIを回す必要ないんじゃない? ってコミットを少しでも抑制できればと思っていたところ、
CircleCIの公式ページに、Skip a build - CircleCI という記事にあるとおり、 [ci skip] とコミットメッセージをつけると、CIが回らない・・!

ということで拡張子を判定し、このコミットメッセージを付け足すgithookを書きましたとさ。

/path/to/directory/.git/hooks
$ cat commit-msg
#!/bin/sh

git diff --staged --name-only | grep -e .go -e .ts > /dev/null;

if [ "$?" -ne 0 ]; then
    echo " [ci skip]" >> $PAIRS_ROOT/.git/COMMIT_EDITMSG;
fi

-e .go -e .ts の部分に色んな拡張子を混ぜて、コミットに該当する拡張子がなかったら、コミットメッセージに [ci skip] と勝手につけてくれちゃいます。
この例だと、 .go , .ts がなければ [ci skip] つけちゃいます。

ぜひhookをつくって、快適なCircleCIをお楽しみください♪
(こんな記事で本当にすまん)