gerrit triggerを使う
gerrit triggerのページに書いてありますが、日本語で書きます。
セットアップ
- gerritと連携するユーザのssh keyをセットアップ
- gerritのページ -> Groups -> Non-Interfative Users -> 連携ユーザをセット
- 権限設定
権限設定
gerritが裏でこそこそ動き回るときのグループはNon-Interactive Usersのため、Non-Interactive Usersに権限設定します。
READ権限
READ権限をrefs/*でNon-Interactive Usersに付与
Label Code-Review権限
Label Code-Review権限をrefs/heads/*でNon-Interactive Usersに付与
Label Code-Review権限
Label Code-Review権限をrefs/heads/*でNon-Interactive Usersに付与
Label Verified
Label Verified権限をrefs/heads/*でNon-Interactive Usersに付与
トリガー設定
gerritのイベントをトリガーにしてビルドすることができます。 以下に、トリガーの説明をそのまま貼り付けます。
- Patch set created 新しいチェンジかパッチセットがアップロードされた時にトリガー (デフォルト)
- Draft published ドラフトのチェンジかパッチセットが発表された時にトリガー (デフォルト、ただしドラフト機能を利用可能なGerritのバージョンの場合)
- Change merged チェンジがマージ/提出された時にトリガー
- Comment added レビューコメントが追加された時にトリガー(評価カテゴリーと評価値でフィルタリング)
- Reference updated ブランチやタグが更新された時にトリガー
レビュー用のjenkinsはPatch set createdを選んでおけばよいでしょう。 リリース物のjenkinsは Change mergedですね。
次に動的トリガーを設定します。 プロジェクトとブランチのパターンを設定します。 パターンはplainにして、gerritに登録したプロジェクト名とブランチ名を設定するのが無難でしょう。
その他の設定
RefSpecに$GERRIT_REFSPEC。’Branches to build’に$GERRIT_BRANCHを設定してください。 後はgerritに変更をpushすれば動くはずです。変数はgerritから連携されます。1つ注意はこれらの変数があるため、手動でのビルドは失敗します。手動でビルドしたい場合はもう1つプロジェクトを作って、RefSpecとBranchesを空で作ってください。