Bitbucketのprivate repositoryとJenkinsの連携について

Bitbucketのprivate repositoryとJenkins使ってCIできる環境を作った。
主に以下の記事を参考にすれば解決だったが、自分用にメモを残す。
URL: http://qiita.com/ka_/items/acd019118eab298101f6

【環境】

Jenkins

JenkinsはさくらVPSCentOS 6.3上で動いている。
yumでインストールしたので、OS上にJenkinsユーザが追加されている状態
Git Pluginは既に追加済み。
※インストール時、以下のURLを参考にした
http://snickerjp.blogspot.jp/2013/10/yum-Install-Jenkins.html
http://futurismo.biz/archives/1348

Bitbucket

Gitでprivate repositoryを作成済み

【手順】

1. Jenkinsの公開鍵を作成する

以下のコマンドを実行して、Jenkinsユーザの公開鍵を作成する。
ssh-keygen 実行した際に、パスフレーズを聞かれるがEnterで跳ばしてOK

$ sudo su - jenkins
$ ssh-keygen

※~/.ssh の下に、id_rsa, id_sa.pub ができるのを確認する。

2.Bitbucketに公開鍵を登録する

Bitbucketに作成しておいたリポジトリの、
 設定(対象リポジトリ内の歯車マーク) > デプロイ鍵 > 鍵を追加
とたどって、keyに1.で作成した公開鍵(id_rsa.pub)の内容をコピペして鍵を追加する。

f:id:yuizho:20131124172545p:plain

※ここまでの手順は以下の記事が参考になった
http://morizyun.github.io/blog/ssh-key-bitbucket-github/

3. Bitbucketにフックを設定する

設定(リポジトリ内の歯車マーク) > フック
からとたどって、プルダウンからPOSTを選択する。
その状態で、ホックを追加を押すとURLの入力を求められるので、以下の形式のURLを設定する。

http://Jenkinsのドメイン:8080/git/notifyCommit?url=git@bitbucket.org:xxxxxx/xxxxxx.git
4.Jenkins側の設定

Jenkinsにログインし、ダッシュボード > 新規ジョブ作成 から新しいjobを作成する。
ジョブを作成したら、そのジョブの設定から以下のように各設定を追加する。

ソースコード管理システム
 ・Repositories(Repository URL) 対象リポジトリのURL(SSH)
 ・リポジトリ・ブラウザ bitbucketwebを選択し、URLに対象リポジトリのURLを入力

f:id:yuizho:20131124174415p:plain

※Repositories(Repository URL)にURLを入力した際、初回はエラーが表示される。
コンソールから、以下のコマンドなど実行して.sshのknown_hostsにBitbucketを追加しておく。途中の質問にはyesを入力する。

$ git ls-remote -h git@bitbucket.org:xxxxx/xxxxx.git HEAD

とか

$ ssh bitbucket.org


■ビルド・トリガ
 ・SCMをポーリングにチェックを入れる。
  ※スケジュールは空でOK

 f:id:yuizho:20131124175556p:plain


あとは、接続テストとかビルドとかやってうまくいってるか確認すればOK
※接続テストに関しては、本文先頭の参考した記事参照


ここまで設定を行えば、Bitbucketにpushしたタイミングで、Jenkinsが自動でビルドするようになる。
準備は整ったので、次はnoseを使ってpythonのソースを自動でテストするとこまでできるようにする。