変更についてgit
に通知するpost-receive
jenkins
フックを設定したいのですが、jenkins
でジョブがトリガーされません。
私のpost-receive
フックは次のようになります。
curl http://localhost/jenkins/git/notifyCommit?url=<git_repository_url>
ターミナルでコマンドを発行すると、次のメッセージが表示されます。
"No git consumers for URI..."
Git Source Code Managementに接続したjenkinsジョブがあります。リポジトリURLとブランチ:*/master
この問題を検索しましたが、「URIのgitコンシューマーなし」に関連する有用なものは見つかりませんでした。
私が使う:
Apacheでプロキシをセットアップしています:
<Proxy *>
Order deny,allow
deny from all
allow from 127.0.0.1
</Proxy>
Gitリポジトリはbare
です。
通知する各プロジェクトのSCMポーリングを有効にします。
送信する通知は、Jenkinsにリポジトリをポーリングするように指示するため、プロジェクトはSCMポーリングが有効な場合にのみ応答します。
メッセージ No git consumers for URI
は常に表示されます。No git jobs using repository
。応答には、ポーリング用にスケジュールされたジョブのリストが含まれるため、それらが表示されている限り、ポーリングがトリガーされました。
それは、ポーリングが実際にdoing何かであることを確認したいということです。 Gitで構成されたジョブに移動すると、左側にGitポーリングログへのリンクが表示されます。そこで、トリガーが実際に何かをしたかどうか、さらに重要なことにエラーがあったかどうかを確認できます。
私はこれに似た問題を抱えていたので、Gitの設定が間違っていることを理解するのに時間がかかりました。手動でトリガーした場合、私のジョブはうまく構築されますが、ポーリングトリガーはGitバイナリへの別のパスを使用して失敗します。私は自分の問題を解決するためにGitパスを定義する必要がありました。
次の手順を実行する必要がありました。
「URI gitRepoURIのgitコンシューマーなし」に加えて#1を完了した後、「projectNameのスケジュールされたポーリング」も取得しました。
しかし、Gitポーリングログを見ると、エラーメッセージが見つかりました:プログラム「C:\ Program Files(x86)\ Git\bin\git.exe」を実行できません:error = 2そのようなファイルまたはディレクトリはありません
このエラーを修正するには、ワークスペースを使用してポーリングを強制するようにソースコード管理を構成する必要がありました(#3)。手動で開始したビルドが正常に機能するため、理由はわかりません。バグかもしれません-LinuxサーバーとWindowsスレーブの混合かもしれません。しかし、いずれにせよ、これでようやく修正されました。それが役に立てば幸い。