我有一个 GIT 存储库所在的网络共享。在我的本地计算机上,我已经签出了 GIT 存储库,我正在使用集成的 GIT 客户端与 Xamarin Studio 一起工作。此外,我还安装了 Jenkins 以进行持续集成。到目前为止,这一切都在起作用。
现在我想在向这个仓库提交某些内容时通知 Jenkins。在 如何使 Jenkins CI 在推送到主控时带有 git 触发器?据说我应该在设置轮询 SCM 选项后创建一个 github 接收后触发器。
来自 Nav 的帖子说我只需要在 hooks
文件夹中创建一个post-commit
内容类似于
#!/bin/sh
#
# A script which triggers the Jenkins build after a commit.
curl http://localhost:8080/jenkins/git/notifyCommit?url=http://localhost:8080/job/MyJobName/
但是如果我尝试在浏览器中打开 URL,我会得到
HTTP 错误 404
访问/jenkins/git/notifyCommit 时出现问题。原因:
Not Found
现在我交换了网址
http://yourserver/jenkins/git/notifyCommit?url=<URL of the Git repository>
直接在浏览器中调用此 URL 会导致构建。将其放入脚本中不会在提交后触发构建。我将钩子放入网络共享上的上述目录中。将脚本放在本地存储库上也不会触发构建。
那么,如何创建这样一个与 Xamarin Studio 协同工作的 git 接收后触发器呢?
编辑:
现在我将本地钩子的权限更改为 755,并真正删除了文件扩展名,但构建没有触发。
你是否已经解决了这个问题 - 已经有一段时间了......
但我只是遇到了同样的问题,发现这是由于不正确的 URL:
请尝试改用curl http://localhost:8080/git/notifyCommit
(不带jenkins/
)。