#やったこと
bitbucketとJenkinsを連携して、自動テスト、デプロイの設定をしてみました。
・bitbucketにプッシュしたら、jenkinsのテストが動き出す。
・jenkinsのテストが問題なければ、デプロイする。
参考サイト
http://miraicraft.co.jp/blog/2014/08/20/bitbucket_jenkins/
#1 bitbucketとJenkinsを連携する公開鍵を作成する
$ sudo usermod -d /var/lib/jenkins -s /bin/bash jenkins
$ cd /var/lib/jenkins
$ sudo -u jenkins ssh-keygen
#2 Bitbucketに公開鍵を登録する
Bitbucketの 設定 > アクセスキー > 「鍵を追加」 をクリック。
Keyの所にさっき生成した公開鍵(/var/lib/jenkins/.ssh/id_rsa.pub)の内容をコピペ
Labelも適当に入力
で「鍵を追加」
#3 Bitbucketでフックの設定
Bitbucketの 設定 > Webhooks > 「Add Webhook」をクリック。
URLに
http://(jenkinsのurl)/git/notifyCommit?url=git@bitbucket.org:xxx/zzz.git(xxx/zzzは自身のbitbucketのurl)
を入力
Titleも適当に入力
#4 jenkinsでテスト用jobの設定
ダッシュボード > 新規ジョブ作成
ジョブ名を適当に入力し、「フリースタイル・プロジェクトのビルド」を選択
「ソースコード管理」で「git」を選んで
「リポジトリ URL」に「git@bitbucket.org:xxx/zzz.git」を入力
※URLを入力した際、初回はエラーがでるため、コンソールから、以下のコマンドなど実行して
.sshのknown_hostsにBitbucketを追加しておく。途中の質問にはyesを入力する。
$ git ls-remote -h git@bitbucket.org:xxx/zzz.git
「ビルド後の処理の追加」> 「他のプロジェクトのビルド」でこの後作成するデプロイ用のjob名を入力
#5 jenkinsでデプロイ用jobの設定
ダッシュボード > 新規ジョブ作成
ジョブ名を適当に入力し、「フリースタイル・プロジェクトのビルド」を選択
「ビルド手順の追加」> 「シェルの実行」でビルド用のシェルを実行するよう設定
デプロイシェルは、/var/lib/jenkins/workspace/(ジョブ名)に配置
以上で、bitbucketにプッシュしたらjenkinsのテストと問題なければデプロイが動く設定ができました。