2

自動テストとコードレビューのためのgit、gerrit、jenkinsを含む新しいCIシステムのセットアップを完了しているところ、奇妙な状況が見つかりました。

3つの異なるgerritプロジェクトがあり、それぞれが独自のJenkinsジョブを持っています。このガイドをセットアップリファレンスとして使用しましたが、すべてがインストールされており、正常に機能しているようです。

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

ただし、2番目のプロジェクトをセットアップしようとすると、プロジェクトトリガーの1つにある変更パッチが、すべてのjenkinsジョブで変更されていることがわかりました。例えば:

GerritProjectAとGerritProjectBがあり、それぞれにJenkinsProjectAとJenkinsProjectBがあるとします。変更がGerritProjectAに送信されると、JenkinsProjectAとJenkinsProjectBの両方がトリガーされます。また、ビルド後のgerrit投票で何かが混乱します。これは、ビルドの1つ(JenkinsProjectBの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

ご覧のとおり、gerrit approveコマンドは、2つの異なるjenkinsジョブの情報と混同されています...

jenkinsジョブのサンプルセットアップ:

Repository URL: ssh://jenkins@gerrit-server: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

何か案は?前もって感謝します!

ドミンゴ

4

1 に答える 1

1

問題が見つかりました:

構成の「GerritTrigger」部分にあるJenkinsジョブの1つ(JenkinsJobBと呼びましょう)には、パターンにgitリポジトリの名前がありませんでした。

gerritプロジェクトに複数のjenkinsジョブがある場合は、次のようにgerritトリガーを設定する必要があります(少なくとも私の場合):

Type: Plain
Pattern: (repository name)

Branches
Type: Path
Pattern: ** (or the branch name if you just want to watch one).
于 2012-04-09T19:19:42.197 に答える