こちらの記事は2015年10月08日にQiitaに投稿したものを移植したものとなります。

Qiitaからの移植に当たって内容の精査は行っていません。
従って、記事は当時の私の知識や当時の技術そのままです。

GitBucketとJenkinsの連携方法は調べればでてきますが、調べた内容そのままではうまくいきませんでした。そこで、うまくいかないときに「このあたりを設定を確認すればうまくいきました。」というのを書きます。

Jenkinsには「GitBucket-Plugin」をインストールし、GitBucketでは「Webhook」を設定します。基本的な設定方法は下記の記事が参考になると思います。

コミットしたらGitBucketとJenkinsとHipChatに任せて他の事やってましょう(2)

環境


  • Jenkins:1.632
  • GitBucket:3.7

バージョンで大して差はないと思います。(たぶん)

確認するところその1 : JenkinsJob設定のGitBucketのURLは正しいのか


JenkinsのJobのGitBucketのURLを指定するところです。このあたり、参考にするサイトによってまちまちですが、URLの後ろに.gitは必要ありません。

GitBucketのリポジトリのトップページのURLを指定します。

この設定が正しい場合は、下記画像のJenkinsのJobページの左のGitBucketのリンクから上記画像のGitBucketリポジトリトップページに遷移することが可能です。

確認するところその2 : JenkinsJob設定のリポジトリURLと権限設定は正しいのか


JenkinsのJobのリポジトリURLを設定するところですが、リポジトリのURLはGitBucketの「HTTP clone URL」を指定します。(こちらも参考するサイトによって記述がまちまちですが、こちらは後ろに.gitが必要です。)

このとき、実際には後述のアクセス権限の関係でリポジトリに接続できるのに、接続できないといわれる場合があります。

JenkinsのJob

リポジトリのURL

次に、「Credentials」にGitBucketの「ログインユーザ/パスワード」を設定する必要があります。

上部画像の「Add」ボタンを押してリポジトリにアクセスするユーザとパスワードを設定します。私はGitBucketにJenkinsというユーザを作りましたが、ビルドログにユーザ名が表示されているわけでもなさそうなので、リポジトリにアクセスできるユーザであれば何でもいいと思います。

確認するところその3 : GitBucket側のWebHookURLは正しいのか


GitBucket側のWebHookのURLですが、JenkinsのGitBucket Pluginページでも

1
http://serverurl:port/jenkins/gitbucket-webhook/

を指定すると記述してありますが、私の環境では「jenkins」の部分を削除したURLで登録すると動きました。

この辺はWebサーバの設定と関係してくると思います。