我试图通过在我的提交钩子中使用这个URL来触发我的Jenkins项目
curl http://jenkins_server/job/job_name/build?token=TOKEN
并没有被触发。 但是,当我在我的网页浏览器中input这个URL时,它会触发我的构build。
当我在我的命令提示符尝试时,我得到一个错误
错误404
状态公司:404
例外:
堆栈跟踪:(没有)由Winstone Servlet Engine v0.9生成。 10 2014年4月22日16:57:38 CEST 2014
谁能告诉我我做错了什么?
首先,如Electrawn建议的那样,验证提交钩子运行的服务器实际上可以到达Jenkins DNS。 简单的ping或卷曲到根地址(即http://jenkins_server
)就足够了
其次,如果您的Jenkins不允许匿名读取访问并构建触发器(并且大多数安装不会),那么您的问题是您的curl
调用未登录。在您的浏览器中,尝试从Jenkins注销,然后转到相同的URL 。 那样有用吗? 可能不会。
要通过curl传递登录凭据,请阅读此处: Jenkins用户身份验证详细信息如何“传递”到使用Jenkins API创建作业的脚本?
这里更简洁的答案
运行curl的服务器是否有一个hosts / DNS条目返回给jenkins_server?