GitLab へのプッシュをトリガにして、Jenkins の Multibranch Pipeline を発動させる方法

前提

  • Jenkins のジョブのタイプは「Multibranch Pipeline」
  • Git のWebアプリは「GitLab」
  • やりたいことは「リポジトリのどのブランチへのプッシュでも*1、Jenkinsを発動させる」こと

やり方

1. Jenkins 側の設定

GitLab のプラグインはインストール済みとします。

「Jenkinsの管理」→「システムの設定」と設定画面をたどると、画面の中ほどに「Gitlab」という項目があります。そこの「Enable authentication for '/project' end-point」というチェックボックスにチェックを入れます。

f:id:gregminster:20171207175740p:plain

2. GitLab 側の設定

プロジェクトのメニューで「Settings」→「Integrations」とたどります。すると画面最上部に Webhook の設定が出てきますので、「URL」に「http://ここにJenkinsの場所/project/Jenkinsのジョブの名前」と記入します。

f:id:gregminster:20171207175749p:plain

ここで project は予約語です。また、URLの最後のスラッシュは不要です。

「Add webhook」を押して設定を保存したら「Test」を選択してテストをしてみるといいでしょう*2

補足

Jenkinsfile を使ってブランチの名前によって分岐条件を書くなどすれば、「ブランチごとにデプロイ先を変える」のようなことができるでしょう。

Jenkinsが発動した際に、変更がないブランチに対しては何も処理が行われることはありません。

参考(感謝!)

*1:プッシュ以外も設定可能

*2:成功すると Jenkins が実際に発動します

Powered by はてなブログ