前提
- Jenkins のジョブのタイプは「Multibranch Pipeline」
- Git のWebアプリは「GitLab」
- やりたいことは「リポジトリのどのブランチへのプッシュでも*1、Jenkinsを発動させる」こと
やり方
1. Jenkins 側の設定
GitLab のプラグインはインストール済みとします。
「Jenkinsの管理」→「システムの設定」と設定画面をたどると、画面の中ほどに「Gitlab」という項目があります。そこの「Enable authentication for '/project' end-point」というチェックボックスにチェックを入れます。
2. GitLab 側の設定
プロジェクトのメニューで「Settings」→「Integrations」とたどります。すると画面最上部に Webhook の設定が出てきますので、「URL」に「http://ここにJenkinsの場所/project/Jenkinsのジョブの名前」と記入します。
ここで project
は予約語です。また、URLの最後のスラッシュは不要です。
「Add webhook」を押して設定を保存したら「Test」を選択してテストをしてみるといいでしょう*2。
補足
Jenkinsfile
を使ってブランチの名前によって分岐条件を書くなどすれば、「ブランチごとにデプロイ先を変える」のようなことができるでしょう。
Jenkinsが発動した際に、変更がないブランチに対しては何も処理が行われることはありません。