web-dev-qa-db-ja.com

Gerritでパッチセットがアップロードまたは変更されたときに、Jenkinsにビルドを起動させたいのですが。正確には、これをどのように構成しますか?

私はJenkins 1.557を使用して、Gerrit 2.8インスタンスの変更を監視しています。私は次のプラグインを使用しています:

  • Gitプラグイン2.1.0
  • Gitクライアントプラグイン1.7.0
  • Gerrit Trigger 2.11.1

Gerrit Triggerで「テスト接続」を使用すると、成功が返されるので、資格情報が機能していることがわかります。 「詳細」ボタンの下のデフォルト値を使用しています。

私のテストビルドタイプでは、Jenkinsがチェックアウトするgitリポジトリを使用しています(「ls-l」のビルド後のステップを追加すると、リポジトリの内容が正しく表示されます)。ビルドトリガーを「gerritevent」に設定し、「gerrit trigger」で「Checkunreviewed patchsets」を選択し、「patchsetcreated」のトリガーを有効にしました。 gerritプロジェクトの設定は正しいようです。

新しい変更または変更の新しいパッチセットをアップロードしても、ビルドを起動できません。 「クエリとトリガーGerritパッチ」ボタンを使用して手動でビルドを起動すると、ビルドは行われますが、投票は記録されません。パズルの一部が明らかに欠けています。gerritにSSHで接続して「ストリームイベント」を実行すると、期待しているイベントが表示されます。

O'ReillyのJenkins(決定的なガイド)は、Gerritを実際にはカバーしていません。このJenkinsインスタンスによって管理されるgitリポジトリが数十あるため、ポーリングを回避しようとしています。

デバッグの次のステップは何ですか?

6
Ry Jones

過去にいくつかの変更があり、プラグインを壊しました:

  • Gerrit 2.8は非推奨のapproveコマンドを削除しました。これはAFAIKがプラグインを破壊したものです。 discussion および Release Notes を参照してください。これは2.11.0-beta1で修正されたので、これは当てはまらないと思います。

  • Gerrit 2.7は、Stream Events特権を導入しました。これは、ユーザーがストリームを受信することを禁止します。デフォルトのイベントについては、 リリースノート を参照してください。おそらく、Jenkinsユーザーにはこのアクセス権限がないため、変更をプッシュした後、ビルドはトリガーされません。

4
StephenKing