前提
- GitLab を使う
- Jenkins を使う
- ポーリングはしない
やりたいこと
GitLab の特定のブランチにプッシュしたときだけに Jenkins のジョブを走らせたい
やりたくないこと
GitLab にプッシュした際に、プッシュ先がどのブランチであっても Jenkins のジョブが走る
結論
どう頑張ってもできなかった*1。
やったこと
なぐり書きで見にくいかと思いますが、やったことです。
GitHubならpayloadでできるがGitLabでは同じようにはできない
JenkinsとGitHubのWebhook連携の整理 │ Aiming 開発者ブログ
.git/hooks は属人設定になってしまう
GitLab プラグインは入れていじった
GitLab Hook プラグインは入れていじった
考察
ここまでハマった場合は大抵やろうとしていることがおかしい*2、特殊、全く別の方法がある、などのことが多いです。どうもパイプラインを使えば一発のような気がしてきました。GitLab CI でonly
オプションを使うのかも。
こういうとき、どこまで追求するのか、どこでさっさと切り上げるか、ということの見極めというのはすごく大事であると思います。