GitLab の特定のブランチだけの push を契機に Jenkins を発動させる方法(が分からなかった)

前提

  • GitLab を使う
  • Jenkins を使う
  • ポーリングはしない

やりたいこと

GitLab の特定のブランチにプッシュしたときだけに Jenkins のジョブを走らせたい

やりたくないこと

GitLab にプッシュした際に、プッシュ先がどのブランチであっても Jenkins のジョブが走る

結論

どう頑張ってもできなかった*1

やったこと

なぐり書きで見にくいかと思いますが、やったことです。

GitHubならpayloadでできるがGitLabでは同じようにはできない

https://developer.aiming-inc.com/infra/jenkins-github-webhook-collaboration/

.git/hooks は属人設定になってしまう

GitLab プラグインは入れていじった

GitLab Plugin - Jenkins - Jenkins Wiki

GitLab Hook プラグインは入れていじった

Gitlab Hook Plugin - Jenkins - Jenkins Wiki

考察

ここまでハマった場合は大抵やろうとしていることがおかしい*2、特殊、全く別の方法がある、などのことが多いです。どうもパイプラインを使えば一発のような気がしてきました。GitLab CI でonlyオプションを使うのかも。

こういうとき、どこまで追求するのか、どこでさっさと切り上げるか、ということの見極めというのはすごく大事であると思います。

*1:6時間ハマりました

*2:そういう運用は普通しない

Powered by はてなブログ