web-dev-qa-db-ja.com

JenkinsのGerritトリガーは、ビルドするリビジョンを見つけることができませんでした

Jenkins + Gerritの使用に問題があります。

これが私がこれまでに得たものです:

  • JenkinsでのGerritTrigger構成は問題ないようです:新しいチェンジセットをプッシュすると、Jenkinsビルドが起動します。

  • 私はこれを使用しました: Jenkins:Gerrit Trigger問題の設定 「手動で」起動することもできます。

  • 私の設定に関しては、私は次のようなものを持っています: https://stackoverflow.com/a/18347982/2248987 。ブランチ指定子は$ GERRIT_BRANCHであり、参照仕様は$ GERRIT_REFSPECです。

  • GerritとGitは独自に罰金を科しています。アクセスもOKのようです。

これが私の問題です。ビルド時(gerritトリガーまたは手動)、ログ出力は次のとおりです。

 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.Origin.url ssh://user@Host:29418/testproject # timeout=10
Fetching upstream changes from ssh://user@Host:29418/testproject
 > git --version # timeout=10
using GIT_SSH to set credentials 
 > git -c core.askpass=true fetch --tags --progress ssh://user@Host:29418/testproject refs/heads/master
 > git rev-parse Origin/$GERRIT_BRANCH^{commit} # timeout=10
 > git rev-parse $GERRIT_BRANCH^{commit} # timeout=10
ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job.
Finished: FAILURE

私はこのメッセージで立ち往生していて、空のリポジトリ、空でないリポジトリ、そして「レビュー中」のチェンジセットの有無にかかわらず試してみました

14
MisterPatate

以前はこの問題が発生していましたが、現在は修正されていると思います。いくつかの重要な構成要素を非表示にしたことでJenkins UIを非難しています;)

修正前のJenkinsビルドの出力は次のとおりです。

Triggered by Gerrit: https://bbpcode.epfl.ch/code/15056
[EnvInject] - Loading node environment variables.
Building remotely on rh6.6-02 (AMD64-RedHatEnterpriseServer 6.6 RedHatEnterpriseServer AMD64-RedHatEnterpriseServer-6.6 rh6.x RedHatEnterpriseServer-6.6 AMD64) in workspace /var/tmp/jenkins/workspace/datamining.nip-commons.gerrit
 > /usr/bin/git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > /usr/bin/git config remote.Origin.url ssh://bbpcode.epfl.ch/datamining/nip-commons # timeout=10
Fetching upstream changes from ssh://bbpcode.epfl.ch/datamining/nip-commons
 > /usr/bin/git --version # timeout=10
 > /usr/bin/git fetch --tags --progress ssh://bbpcode.epfl.ch/datamining/nip-commons +refs/heads/*:refs/remotes/Origin/*
 > /usr/bin/git rev-parse 74e4ff18f54bd6e046f7af016614193f566adfe4^{commit} # timeout=10
ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job.
Started calculate disk usage of build
Finished Calculation of disk usage of build in 0 seconds
Started calculate disk usage of workspace
Finished Calculation of disk usage of workspace in 0 seconds
Finished: FAILURE

[〜#〜]ソリューション[〜#〜]

以下に示すように、ビルド構成を開き、「ソースコード管理」セクションに移動する必要があります。

Git config with Advanced button

「詳細」ボタンがあることに気付くでしょう。それをクリックすると、以下のような追加のフィールドが表示されます。

Git config with refspec field revealed

これで、ここにrefspecを入力できます:$ GERRIT_REFSPEC

ここで、失敗したビルドを再トリガーするか、レビューを破棄して新しいレビューを送信すると、機能するはずです。

適切なrefspecができたので、Jenkinsジョブの出力は次のとおりです。

Retriggered by user kerrien for Gerrit: https://bbpcode.epfl.ch/code/15056
[EnvInject] - Loading node environment variables.
Building remotely on rh6.6-02 (AMD64-RedHatEnterpriseServer 6.6 RedHatEnterpriseServer AMD64-RedHatEnterpriseServer-6.6 rh6.x RedHatEnterpriseServer-6.6 AMD64) in workspace /var/tmp/jenkins/workspace/datamining.nip-commons.gerrit
 > /usr/bin/git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > /usr/bin/git config remote.Origin.url ssh://bbpcode.epfl.ch/datamining/nip-commons # timeout=10
Fetching upstream changes from ssh://bbpcode.epfl.ch/datamining/nip-commons
 > /usr/bin/git --version # timeout=10
 > /usr/bin/git fetch --tags --progress ssh://bbpcode.epfl.ch/datamining/nip-commons refs/changes/56/15056/2
 > /usr/bin/git rev-parse 74e4ff18f54bd6e046f7af016614193f566adfe4^{commit} # timeout=10
Checking out Revision 74e4ff18f54bd6e046f7af016614193f566adfe4 (dev)
 > /usr/bin/git config core.sparsecheckout # timeout=10
 > /usr/bin/git checkout -f 74e4ff18f54bd6e046f7af016614193f566adfe4
 > /usr/bin/git rev-parse FETCH_HEAD^{commit} # timeout=10
 > /usr/bin/git rev-list 2649d51369413cef4dfb7ec50939945005514cfa # timeout=10
Cleaning workspace
 > /usr/bin/git rev-parse --verify HEAD # timeout=10
Resetting working tree
 > /usr/bin/git reset --hard # timeout=10
 > /usr/bin/git clean -fdx # timeout=10
Triggering datamining.nip-commons.gerrit » default
datamining.nip-commons.gerrit » default completed with result SUCCESS
Started calculate disk usage of build
Finished Calculation of disk usage of build in  2 second
Started calculate disk usage of workspace
Finished Calculation of disk usage of workspace in 0 seconds
Finished: SUCCESS
13
Samuel Kerrien
  1. 'ビルドするブランチ>ブランチ指定子'フィールドを空白のままにします
  2. [詳細設定]ボタンをクリックして、カスタムrefspecを設定します。+ refs/heads/feature/my-feature:refs/remotes/Origin/feature/my-featureこれらの設定を使用すると、プラグインは正しく実行されます。 'feature/my-feature'ブランチのみをフェッチしてチェックアウトします。
2
rahul srivastav

あなたはそのように構成しようとすることができます

  • Refspec= refs/Changes /:refs/Changes /
  • 構築するブランチ= $ GERRIT_REFSPEC

完全な構成があります に従ってください

今すぐビルド」をクリックすると、$ GERRIT_REFSPECが存在しないため、Jenkinsはソースを取得できません。

1
Flows

次の設定が機能しました。「詳細」セクションでRefspecに$ GERRIT_REFSPECを入力します。 「ブランチ指定子」は空白または任意の有効な値にすることができます

0
Anndy Dong

たくさんの苦労とログに目を光らせた後、ついに私は解決策を得ました。

私たち全員が行ったのは、構成の間違いです。チェックボックスをオンにするとこのプロジェクトはパラメータ化されます以下の構成を行う必要があります

enter image description here

ここでは、パラメーター名をbranchgitと名付けました。ソースコード管理では、ブランチを構築することに集中する必要がありますその値は下の画像のように「$ branchgit」のみである必要があります enter image description here

0
Abhishek Mishra

$GERRIT_BRANCH$GERRIT_REFSPECに置き換えます

0
uncletall