我想在提交GitLab(git面板)后自动开始构建Jenkins。
所以我设置了这个插件https://wiki.jenkins-ci.org/display/JENKINS/Build+Token+Root+Plugin并对其进行了配置:
然后我将webhook添加到GitLab:
现在我可以通过http-request(例如来自浏览器)启动Jenkins任务,但是没有来自Gitlab的成功(通过按钮“Test Hook”)。为什么呢?
GitLab的webhook与http-request不一样吗?
由于Jenkins的标准git插件的限制,我可以通过https://wiki.jenkins-ci.org/display/JENKINS/Gitlab+Hook+Plugin自动启动这个Jenkins工作但不能。
答案 0 :(得分:5)
您说您已经配置了Build Token Root插件,但您的webhook网址以/build?token=test
结尾。
虽然如果你阅读插件文档,它会说:
此插件提供备用URI模式,该模式不受通常的整体或作业读取权限的约束。只需ping
buildByToken/build?job=NAME&token=SECRET
。
您正在使用的网址在Jenkins设置中无法使用身份验证 - 因此存在构建令牌根插件的原因 - 您需要使用该插件的网址模式。
即。在你的情况下,它应该是这样的:
https://jenkins.example.com/buildByToken/build?job=Config+Generator+Launch+UAT+PP+PROD&token=test
对我来说,在作业名称中有两个级别/job/
似乎有点奇怪,但也许您正在使用文件夹插件或其他东西?因此,job
参数可能必须为Configuration+Delivery/job/Config+Generator+Launch+UAT+PP+PROD
左右。
在任何情况下,您都可以直接通过浏览器调用这些URL,而不必每次都更改GitLab挂钩URL并点击 Test Hook 。