我想设置一个post-receive
git
挂钩,通知jenkins
有关更改的内容,但jenkins
中没有触发任何作业。
我的post-receive
挂钩看起来像这样:
curl http://localhost/jenkins/git/notifyCommit?url=<git_repository_url>
如果我在终端发出命令,我收到以下消息:
"No git consumers for URI..."
我有一个连接到Git源代码管理的jenkins工作,给出了存储库URL以及分支:*/master
我已经搜索过这个问题,但我发现没有什么有用的内容:“没有针对URI的git使用者”
我用:
我在apache中有一个代理设置:
<Proxy *>
Order deny,allow
deny from all
allow from 127.0.0.1
</Proxy>
git存储库是bare
。
答案 0 :(得分:43)
为要通知的每个项目启用SCM轮询:
您发送的通知告诉Jenkins轮询存储库,因此项目只会在启用SCM轮询时响应。
答案 1 :(得分:15)
消息No git consumers for URI
始终显示,如果您看到No git jobs using repository
,您应该担心。响应将包含计划进行轮询的作业列表,因此只要您看到它们,就会触发轮询。
那说你可能想检查轮询实际上是做某事。如果你进入配置了Git的工作,你可以看到左边的Git Polling Log的链接。在那里,您将能够看到触发器是否实际执行了任何操作,更重要的是,如果出现错误。
我遇到了类似的问题,我花了一段时间才发现我的Git配置错误。我的工作将在手动触发时构建正常,但轮询触发器将使用与Git二进制文件不同的路径并失败。我最终必须定义Git路径来解决我的问题。
答案 2 :(得分:6)
我必须采取以下步骤:
除了&#34之外完成#1;没有针对URI gitRepoURI的#git消费者&#34;我也得到了&#34;计划轮询projectName&#34;。
但是,查看Git Polling Log我发现错误消息:无法运行程序&#34; C:\ Program Files(x86)\ Git \ bin \ git.exe&#34;:error = 2,没有这样的文件或目录
要修复此错误,我必须将源代码管理配置为使用工作区强制轮询(#3)。我不确定为什么,因为手动启动的构建工作正常。也许是一个错误 - 可能是Linux服务器和Windows奴隶的混合。但不管怎样,这最终为我解决了这个问题。希望它有所帮助。
答案 3 :(得分:1)
除了@idontevenseethecode的解决方案
如果 git repo 是专用的,请不要忘记检查“源代码管理”下的“存储库 URL”!