Symfoware

Symfowareについての考察blog

JenkinsとGitBucketを連携し、pushされたら自動的にソースを取得する(GitBucket Plugin)

DebianにJenkinsとGitBucketをインストールしました。
Debian 7にTomcat 7 + gitbucket + Jenkinsをインストールする

以前、JenkinsとMercurialを連携し、antの自動テストが行える環境を作成しました。
JenkinsとMercurialを連携する(SCM-Manager使用)

同様のことを、JenkinsとGitBucketで行ってみます。
長くなるので、今回はJenkinsとGitBucketの連携まで。



GitBucket Plugin



JenkinsにGitBucket Pluginというそのものズバリのプラグインがあります。
これを使用することにしました。

[Jenkinsの管理] - [プラグインの管理] を選択。

552_01.png


利用可能タブを選択して、フィルターに「gitbu」ぐらいまで入力すると、
GitBucketプラグインが絞りこまれます。

チェックをつけて「再起動せずにインストール」をクリックしました。

552_02.png


プラグインのインストールが始まります。
「インストール完了後、ジョブがなければJenkinsを再起動する」に
チェックをつけておきました。

552_03.png


しばらく待って、応答がなくなったらページをリロードします。
どうやら途中で画面更新が止まるらしく、ちゃんとプラグインがインストールできていました。




サンプルレポジトリの用意



GitBucketで、適当にレポジトリを作成しておきます。
今回の最終目標は、CodeIgniterソースの自動テストなので、
phpのソースファイルをレポジトリに登録しました。

この操作はUbuntuで行っています。

gitをインストールし、ユーザー名などの初期設定を実施。


$ sudo apt-get install git
$ git config --global user.email "symfo@example.com"
$ git config --global user.name "Symfo"




/home/baranche/dev/git(任意)にレポジトリのクローンを取得しています。


$ cd /home/baranche/dev/git
$ git clone http://192.168.1.102:8080/gitbucket/git/root/test.git




testフォルダが作成されますのでその中に、phpのソースを一式コピー。

552_04.png


コミット後に、リモートレポジトリへプッシュします。


$ cd /home/baranche/dev/git/test
$ git add .
$ git commit -m "first commit"
$ git push -u origin masterk




GitBucketの画面を見ると、ちゃんと登録出来たようです。

552_05.png


これでGitBucketのレポジトリの準備が出来ました。




新しいジョブの作成



Jenkinsの画面に戻り、「新しいジョブ」を作成します。

552_06.png


ジョブ名は適当に「test」としました。
「フリースタイル・プロジェクトのビルド」を選択します。

552_07.png


GitBucketのURLに、プロジェクトのURL
「http://192.168.1.102:8080/gitbucket/root/test」
を指定しました。

552_08.png


レポジトリはGitを選択。
レポジトリのURLに「http://192.168.1.102:8080/gitbucket/git/root/test.git」を
指定すると、こんなエラーになります。

552_09.png


Failed to connect to repository : Error performing command:
git ls-remote -h http://192.168.1.102:8080/gitbucket/git/root/test.git HEAD




なんだろ?と思い調べてみると、
Jenkins could not run git

Jenkinsサーバーにgitコマンドが必要なのね。
インストールしてやります。


# apt-get install git



これでエラーがなくなります。


ビルド・トリガは「Build when a change is pushed to GitBucket」を選択。

552_10.png

これでコミットされたら自動的にビルドが実行されるはず。


しかし、これだけではもちろんコミットされたタイミングがわかりません。
GitBucket側の設定に戻り、「WebHook URL」を設定します。

552_11.png


Services HooksのWebHook URLって何を入力するんだよ。と思っていたのですが、
Jenkins側のヘルプにちゃんと書いてありました。

552_12.png



Configure GitBucket to deliver a POST request to your Jenkins at
http://your.jenkins.host/jenkins/gitbucket-webhook/.




ということで、[JenkinsのURL]/gitbucket-webhook/をすればOKです。

私の場合は
http://192.168.1.102:8080/jenkins/gitbucket-webhook/
となりました。



初回のビルドは(たぶん)手動で行う必要があります。
左側の「ビルド実行」をクリックすると、レポジトリからソースを取得してくれました。

552_13.png





自動更新の確認



何か適当なソースファイルを編集し、レポジトリにコミットします。
終わったらリモートにプッシュ。


$ git add .
$ git commit -m "test"
$ git push




自動的にビルドが実行され、該当のソースが更新されていると思います。

552_14.png



続きます。
関連記事

テーマ:サーバ - ジャンル:コンピュータ

  1. 2015/02/19(木) 22:35:46|
  2. Java
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<JenkinsとGitBucketを連携し、CodeIgniterのテストを自動実行する(GitBucket Plugin) | ホーム | PHPでzipファイルを作成する(ZipArchive)>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1632-4727110c
この記事にトラックバックする(FC2ブログユーザー)