2012-04-08 12 views
2

私たちは、自動テストやコードレビューのためのgit、ヘリットとジェンキンス含め、私たちの新しいCIシステムのセットアップを終えている、と私たちは奇妙な状況を発見している:私たちは別の3を持っている複数ジェンキンス/ヘリット・プロジェクト

をgerritプロジェクト、各自が独自のJenkinsの仕事を持っています。セットアップリファレンスとしてthis guideを使用し、すべてがインストールされていて、明らかにうまく動作しています。

最初のプロジェクトがセットアップされ、サンプル変更パッチでテストされました。ジェンキンスは正しくトリガされ、テストに合格し、期待どおりにビルドに「検証済み」と投票しました。ここまでは順調ですね!

しかし、2番目のプロジェクトをセットアップしようとすると、プロジェクトの1つの変更パッチがすべてのジェンキンジョブで変更されることがわかりました。例:

GerritProjectAとGerritProjectBがあり、それぞれにJenkinsProjectAとJenkinsProjectBがあるとします。変更がGerritProjectAに送信されると、JenkinsProjectAとJenkinsProjectBの両方がトリガーされます。また、何かをビルドした後、ヘリット投票にまで混入:これはです(JenkinsProjectBの1)を構築するの1の後sshd_logでの情報:

gerrit approve 10,3 --message '\''Build Failed 
    http://jenkins-server:8080/job/projectA/6/ : FAILURE 

    http://jenkins-server:8080/job/projectB/59/ : Correcto'\!''\'' -- 
     verified -2 --code-review 0' 14ms 6ms 1 

あなたが見ることができるように、ヘリット・コマンドを承認が混ざっています任意のジェンキンスジョブ用の2つの異なるジェンキンスジョブの情報と...

サンプルのセットアップ:

Repository URL: ssh://[email protected]:29418/projectA.git 
Banches to build: $GERRIT_PATCHSET_REVISION 
Build triggered by Gerrit event: 
Project Type: Plain 
Branches: Path ** 

ソフトウェアバージョン:

Jenkins: 1.458 
Gerrit plugin: 2.5.1 
Gerrit: 2-3 rc0 

アイデアをお探しですか?前もって感謝します!ジェンキンスジョブ(のはJenkinsJobBそれを呼びましょう)の

一つ、設定の「ヘリット・トリガー」の部分にでgitリポジトリの名前を持っていなかった:問題が見つかり

ドミンゴ

答えて

1

パターン。

あなたはヘリット・プロジェクトのための複数のジェンキンスの仕事を持っている場合は、セットアップに(少なくとも私の場合)このようなヘリット・トリガーが必要になります。

Type: Plain 
Pattern: (repository name) 

Branches 
Type: Path 
Pattern: ** (or the branch name if you just want to watch one).