量産型エンジニアの憂鬱

きっと僕は何物にもなれない。

JenkinsとGitLabをHTTPで簡単に連携する

前回の記事JenkinsGitHubを連携した。
GitHub Enterpriseあるけどお金かかるし。ってことで、GitLabを導入する予定。今回はJenkinsGitLabを連携する。タダ最高。

JenkinsとGitLabを連携する

大まかにいうと以下の感じ

  • GitLabにJenkinsユーザを作成する
  • 連携したいGitLabプロジェクトにJenkinsユーザを追加する
  • Jenkinsでジョブの設定する
  • GitLabでWebhookの設定をする

GitLabでJenkinsユーザを作成する

管理者ユーザでGitLabにログインし、新規ユーザを作成する。追加されたプロジェクトでgit cloneができればいいのでExternalユーザでよい。
f:id:duck8823:20160425224324p:plain
f:id:duck8823:20160425224401p:plain

連携したいGitLabプロジェクトにJenkinsユーザを追加する

GitLabにログインし、連携したいプロジェクト > Membersをクリックする。
Peopleに先ほど追加したJenkinsユーザを追加し、Project AccessReporterに設定する。 f:id:duck8823:20160425230750p:plain

Jenkinsのジョブを設定する

Jenkinsではあらかじめ
Home > Jenkinsの管理 > プラグインの管理GitLab Plugin
をインストールしておく。
f:id:duck8823:20160425233313p:plain

また、Home > 認証情報 > グローバルドメイン > 認証情報の追加GitLabに登録したjenkinsユーザの情報を登録しておく。
f:id:duck8823:20160425232240p:plain

ジョブの設定

ソースコードの管理でGitを選択し、Repository URLにはGitLabで表示されているHTTPのURLを、Credentialsには上で登録した認証情報を選択する。
f:id:duck8823:20160425233943p:plain

ビルド・トリガでBuild when a change is pushed to GitLab...にチェックを入れる。
ここで表示されるURLを控える。
f:id:duck8823:20160425234923p:plain

GitLabでWebhookの設定をする

GitLabにログインし、、連携したいプロジェクト > Settings > Webhooks をクリックする。
URLに先ほど控えたURLを入力してAdd Webhookする。 f:id:duck8823:20160426000744p:plain

ページ下部の一覧に追加されるので、Test Hookをクリックする。 f:id:duck8823:20160426001220p:plain

GitLab上で
f:id:duck8823:20160426001318p:plain
が表示され、
Jenkins上で
f:id:duck8823:20160426001358p:plain
ジョブが走れば成功です。