web-dev-qa-db-ja.com

Jenkinsのnotification-poll-buildが「URIssh:// pathのgitコンシューマーがありません」で失敗する

Jenkinsがリポジトリfooへの新しいgitコミットについて通知を受け取るたびに、トリガーとなるクライアントで次のログ/エラー応答を受け取ります。

Scheduled polling of foo
No git consumers for URI ssh://git@localhost:9777/path/to/foo.git

この失敗した通知はビルドを開始しません。マニュアル「BuildNow」を使用すると、正常にビルドが開始されます。

セットアップ

  • Jenkinsインスタンスがlocalhost:8666をリッスンしています。
  • SSHデーモンがlocalhost:9777をリッスンしています。
  • Jenkins内には、gitベースのMavenプロジェクトがあります。
    • 「Mavenプロジェクト名」はfooです。
    • 「GitリポジトリURL」はssh://git@localhost:9777/path/to/foo.gitです。
  • その裸のリポジトリには、次の内容のフックファイルhooks/post-receiveがあります。

# this is file post-receive
curl http://localhost:8666/git/notifyCommit?url=ssh://git@localhost:9777/path/to/foo.git

このbuilding-on-commit-notificationは以前はうまく機能していました。標準のSSHポート22から非標準の9777に移行すると、うまく機能しなくなったような気がします。

コミット通知でビルドトリガーを成功させるにはどうすればよいですか?


おそらく関連するソースコードファイル:

8
Abdull

フックをJenkinsに接続するときに覚えておくべきこと:

  1. ビルドトリガーのPoll SCMオプションを厚くして、「スケジュール」テキスト領域を空のままにします

  2. url=xxxパラメータは、ジョブ構成で指定された「リポジトリURL」と一致する必要があります。プレフィックスがssh://の場合は、通知呼び出しで保持する必要があります

  3. 設定したPush a change to the repoを忘れないでください!変更があることを確認するには:http://jenkins-url:jenkins-port/job/JOB-NAME/scmPollLog/の最後の行に「変更が見つかりました」を含める必要があります。

ソース: Gitプラグインドキュメント

5
Filippo Vitale

私は同じことで立ち往生しました。

問題は、最後のビルド以降、Gitに変更がないことです。いくつかの変更を加えてから、jenkins通知URLを使用するだけで機能します。

私が使用した:

http://<jenkins-server_link>/git/notifyCommiturl=http://<gitrepo>.git
0