14

gerrit にプッシュするすべてのコミットを検証するために、gerrit トリガー プラグインを使用して jenkins を構成しました。このトリガーには、元のリポジトリでの最新の変更が含まれ、ビルドが作成されることを期待しています。しかし、それはレポプロジェクトのみを複製し、私の変更なしでコンパイルしています。

以下は、ジェンキンスでの gerrit トリガーの構成設定です。

Refspec: $GERRIT_REFSPEC 
Branches to build: $GERRIT_BRANCH 
Build trigger: Gerrit event 
Trigger on: patch set created 
Gerrit project: added project and branch

以下はビルド出力メッセージです

Triggered by Gerrit: http://ci-test1/22
Building on master in workspace /var/lib/jenkins/jobs/Build_Adserver_4.7/workspace
Checkout:workspace / /var/lib/jenkins/jobs/Build_Adserver_4.7/workspace - hudson.remoting.LocalChannel@733aee56
Using strategy: Default
Last Built Revision: Revision 701a75ef38aa191ac1b806c48e6b3451671888f6 (ads/4.7)
Fetching changes from 1 remote Git repository
Fetching upstream changes from abc
Commencing build of Revision 701a75ef38aa191ac1b806c48e6b3451671888f6 (ads/4.7)
Checking out Revision 701a75ef38aa191ac1b806c48e6b3451671888f6 (ads/4.7)
[workspace] $ /bin/sh -xe /tmp/hudson1375188638196718521.sh
+ echo 'Started Build'
Started Build
+ echo ..................
..................
+ echo 'Build Finished'
Build Finished
Finished: SUCCESS

ここで、701a75ef38aa191ac1b806c48e6b3451671888f6 はリポジトリ ブランチの HEAD であり、8cbda558adcad4fb7eb714e0b3fb98a6fbf5811c はビルドをトリガーした最新の変更の SHA-id です。

jenkinsワークスペースからも確認しましたが、変更は含まれていません。

言及する情報が不足している場合は申し訳ありません。ここで何か不足している場合は、私に知らせてください。

4

4 に答える 4

17

Jenkins 1.532.2 の使用 Git クライアント プラグイン 1.6.2 Git プラグイン 2.0.1 Git トリガー 2.11.0

Gerrit トリガーを構成する手順は次のとおりです (メモリから、うまくいけばすべて正常に動作します)。

  1. プラグイン「Gerrit Trigger」、「Git Plugin」、および「Git Client Plugin」をインストールします。
  2. jenkins のメイン構成 (HOME->Manage Jenkins) で、Gerrit Trigger をクリックします。
  3. サーバーを作成して構成します。「テスト接続」を使用して、動作することを確認します。
  4. 最後に、「コントロール」の下で「開始」を押します(それが何をするのか、実際に必要かどうかはわかりませんが、私はそうしました)。
  5. プロジェクトの設定に移動します (MYPROJECT->Configure)
  6. 「ビルドトリガー」の下の「Gerrit イベント」を確認します。
  7. 新しく追加されたメニューで、サーバー、トリガーなどを選択します。
  8. Gerrit Project では、「MYPROJECT」をパターンとして「Plain」を使用しました
  9. ブランチの場合、「パス」と「**」をパターンとして使用しました (すべてのブランチをビルドします)。
  10. 「ソース コード管理」(UI のトリガーから上) で、「Git」をクリックします。
  11. リポジトリの URL を設定します。ここでは $USER が一致しますが、それ以外の場合は正しいユーザーを書き込みます $GERRIT_SCHEME://$USER@$GERRIT_HOST:$GERRIT_PORT/$GERRIT_PROJECT
  12. ブランチを指定: $GERRIT_BRANCH
  13. 右側の [Repositories] の下で [Advanced] をクリックし、[Refspec] に $GERRIT_REFSPEC と入力します。
  14. すぐ下の [追加] をクリックし、[ビルドするものを選択するための戦略] を選択します。
  15. 「ゲリットトリガー」を選択

あまり直感的ではありませんが、うまくいくはずです。正しい SHA1 ID が構築されていることを確認することをお勧めします。

Error stderr: fatal: Couldn't find remote ref $GERRIT_REFSPEC が発生した場合

ここに画像の説明を入力

于 2014-02-28T21:12:16.750 に答える
10

に変更する必要がありChoosing StrategyますGerrit Trigger

ジョブの構成ページに移動しAdvanced、セクションの下にある 2 番目のボタンをクリックしますgit。ほぼ一番下に、Choosing Strategy変更する必要がある がありますGerrit Trigger

これにより、Git はビルドの正しいバージョンを取得します

于 2013-09-30T00:43:40.087 に答える