首页 > 解决方案 > 从 Gitlab 触发 Jenkins 作业不起作用

问题描述

我正在尝试使用以下说明从 Gitlab webhook 自动执行我的工作: https://github.com/jenkinsci/gitlab-plugin 现在我有一个 Gitlab webhook,当我测试它时,响应为 200,但响应标头是

Response headers:

Server: nginx/1.10.3 (Ubuntu)
Date: Wed, 24 Oct 2018 20:43:43 GMT
Transfer-Encoding: chunked
Connection: close
X-Content-Type-Options: nosniff

没有响应体

这是预期的响应还是错误?,我的工作是多分支管道,在 Jenkins 中,该工作没有执行。我的 Jenkins 使用 Nginx 在 proxypass 后面工作,我在 Gitlab 中的 webhook url 的结构是https://jenkinsuser:jenkinsuserapiid@my.jenkins.server/project/myjob 在 Jenkins 全局配置中,在我的 Jenkins 的 Gitlab 插件中我可以对从 Jenkins 到 Gitlab 的连接进行成功测试。我不知道出了什么问题但是在https://jenkinsuser:jenkinsuserapiid@my.jenkins.server/project/myjob中,myjob 是什么?这个:DOT_testing-webhook 或者这个:view/DevOps/job/DOT_testing-webhook/job/master/

curl -X POST https://USER:API_ID@my.jenkins.com/project/DOT_testing-webhook/dev响应的执行:

HTTP 错误 404

访问 /project/DOT_testing-webhook/dev 时出现问题。原因:

    未找到


由 Jetty 提供支持:// 9.4.z-SNAPSHOT

标签: nginxjenkinsgitlab

解决方案


响应 200 看起来不错。响应正文取决于我猜的插件。我使用通用 Webhook 触发器插件,并且我的响应正文具有曾经/将被触发的 Jenkins 作业名称。在您的情况下,响应正文可能是空白的,因为 webhook 找不到您在 webhook url 中配置的作业,或者插件没有发回任何响应。

您的 webhook URL 应采用以下格式,因为您的作业位于 DOT_testing-webhook 文件夹中:

https://USERID:APITOKEN@JENKINS_URL/project/DOT_testing-webhook/master(如果使用全局身份验证 - https://github.com/jenkinsci/gitlab-plugin#configuring-global-authentication

https://JENKINS_URL/project/DOT_testing-webhook/master(如果使用按项目身份验证 - https://github.com/jenkinsci/gitlab-plugin#configuring-per-project-authentication)您需要在 GitLab 的 Secret Token 字段中配置令牌


推荐阅读