おそらくはそれさえも平凡な日々

Jenkinsでパラメータ付ビルドでブランチ指定出来るようにしつつ、GithubのHookも受け付けられるようにする

Jenkinsのパラメータ付ビルドで、ブランチを指定できるようにすると墓ドルわけですが、これで困るのが、Githubのhookを上手く受け付けられなくなってしまうこと。

GithubのHook用の中継サーバーを立てれば解決できるなーとは思っていてなんとなくやっていなかったのだが、先日、@hisaichi5518グリーンで飲んだ時に正しく全く同じ問題意識を抱えていたことが判明して、これはどうにかしないといけないと思い何とかした。

まず、Github止まりで中途半端に放置していた、Github::Hooks::Receiverを大幅にインターフェースを変更してCPANizeした。

それを使って以下の様なサーバースクリプトを書いた。Hookを受け取って、パラメータを組み立てて、Jenkinsに投げてくれるだけの人です。

なんか、pushイベントはブランチのdeleteをpushした時とかも飛んでくるので、コミットがないときは無視したりしている。

下のスクリプトはIRC botスクリプトでこいつを起動しておいて、unazu_san: ci branch/nameとか話しかけると、テスト実行してくれて、パラメータ付ビルドが墓ドル。

中継サーバーは、topicブランチは自動的にテストを回さず、必要に応じてIRCから担当者が回すとかでも良いかもしれない。その辺自由に書き換えられると思います。

半年前くらいから出来るなーとか思いつつ棚上げしてたけど、いざやってみると小一時間でできたというよくある話だった。飲ミュニケーション大事!

Github::Hooks::Receiverは@hisaichi5518がRubyに移植してくれたみたいで同じようなことをRubyでも簡単に実現できます。

created at
last modified at

2014-07-27T16:16:16+0900

comments powered by Disqus