JenkinsのGerrit Trigger Pluginを使ってみる

gerritのパッチセットを検証するのに有用なGerrit Trigger Pluginの使い方をまとめました。

gerritはdebian-8というホスト名のサーバで稼働しています。

gerritのプロジェクト名はtestです。


gerritのインストール方法はこちらを参照してください。

git-reviewの使い方はこちらを参照してください。


1 Gerrit Tigger Pluginとは

gerritにアップロードされたパッチセットを検証するプラグインです。各パッチを単独で当てたソースコードに対してテストを実行し、テストの成否をVerifiedスコアとしてgerritに投稿します。

2 Gerrit Tigger Pluginのインストール方法

Jenkinsのプラグイン制御画面からインストールします。

Jenkinsの管理 -> プラグインの管理 -> 利用可能

https://dl-web.dropbox.com/s/tasxl5x42dabcki/0001_Install-Plugin.png

3 Gerritトリガーの設定

gerritサーバを追加します。

Jenkinsの管理 -> Gerritトリガー

https://dl-web.dropbox.com/s/5nu1q5etef4a6i9/0002_Gerrit-Trigger.png

左側の「新しいサーバを追加」をクリックします。

https://dl-web.dropbox.com/s/94lp4skdjne6ghy/0003_Add-New-Server.png

jenkins上で表示されるgerritサーバの名前を設定します(ホスト名と同じで問題ないでしょう)。

https://dl-web.dropbox.com/s/qiq6h5i21p5280h/0004_New-Server-Description.png

gerritサーバのプロパティを設定します。

 

名前 先ほど入力したgerritサーバの名前
ホスト名 gerritサーバのホスト名
フロントエンドURL gerritサーバのURL(HTTPかHTTPS)
ユーザ名 gerritサーバ上のユーザ名

 

「テスト接続」でgerritサーバへの接続を確認できます。

https://dl-web.dropbox.com/s/2mtirkhvt1gd63c/0005_New-Server-Detail.png

「高度な設定」をクリックするとCode-Reviewスコア等のスコア値とgerrit CLIコマンドのオプションを設定することができます。

gerritでlabel "Verified"の設定をしていない場合は–verifiedオプションを削除する必要が有ります。

CLIコマンドが失敗したかどうかがわかりづらいので注意が注意が必要です。

https://dl-web.dropbox.com/s/uw2crd40bz6m4sn/0006_CLI-Option.png

保存して設定を反映させます。

状態が赤色の場合はgerritサーバにアクセスできていないので、gerritサーバが動いてるかどうかとGerrit Triggerの設定を確認してください。

https://dl-web.dropbox.com/s/0ordz7i0wvp4n13/0007_Complete-Add-New-Server.png

4 プロジェクトの設定

 プロジェクトの設定を開きます。

「ソースコードの管理」でgerritサーバのURLを指定します。

ここはHTTP経由でもSSH経由でも構いません。SSH経由の場合はCredentialsの登録が必要です。

https://dl-web.dropbox.com/s/e0nlbc8p71qxdk8/0008_Add-Repository.png

高度な設定をクリックしてRefSpecに$GERRIT_REFSPECを入力します。

Branches to buildに$GERRIT_MASTERを入力します。

Additional BehaavioursでStrategy for choosing what to buildを追加し、Choosing strategyにGerritトリガーを選択します。

https://dl-web.dropbox.com/s/1bd13qr2w2kd0f3/0012_Project-Setting-Append.png

「Gerritトリガー」にチェックを入れ、トリガーするパッチセットの対象を設定します。

サーバは先ほど追加したgerritサーバを設定します。

今回はプロジェクトに設定されたパッチセット全てを対象とする為、Gerritプロジェクトの左側をPlainとtestに、右側をPathと**にしています(testはgerritのプロジェクト名です)。

https://dl-web.dropbox.com/s/dann7al8fyr5rds/0009_Gerrit-Project.png

5 自動でテストを実行

上記の設定を済ませた状態でgit-reviewコマンドを実行すれば、Jenkinsは自動でテストを実行します。

上記の設定の前にすでにgit-review済みのパッチセットについては自動で実行されません。

テストが成功すればVerifiedスコアが+1されます。

あとはCode-Reviewスコアを+2すればSubmit可能になります。

https://dl-web.dropbox.com/s/xs6ue6bd04ifmwl/0010_Update-Verified-Score.png

6 手動でテストを実行

パッチセットを検索して手動でテストを実行することもできます。

Jenkins -> Gerritパッチのクエリとトリガー

「検索ボタン」ボタンを押した後、各パッチにチェックを入れ、「トリガー実行」ボタンを押すことでテストが実行されます。

https://dl-web.dropbox.com/s/youx1h0i0n6bs21/0011_Manual-Gerrit-Trigger.png