jenkins - Gitlab Webhook 和 Jenkins : No Data Received

标签 jenkins gitlab

我一直在关注以下链接,以便使用 Web Hook 将 Gitlab 与 Jenkins 集成。以下所有链接都提到在 Jenkins 端接收“JSON”或“有效负载”或 token ,但当我尝试在 Jenkins 配置的 Shell 脚本中回显或打印这些参数时,我什么也没看到。

在 shell 脚本中我有这个,但我从来没有收到任何有效载荷:

echo "the build worked! The payload is $payload"



我确实在/var/log/Jenkins/Jenkins.logs 上看到了一些 JSON,但我想看到进入我的“控制台输出”中的消息,以便我可以使用来自 Gitlab 的消息来确定是否触发 build 与否。

大多数这些链接提到的选项都不能通过 Gitlab 获得。一篇文章提到将 web hook 格式转换为 application/json,但 Gitlab UI 上没有这样的选项。
How to process a github webhook payload in Jenkins?
http://chloky.com/github-json-payload-in-jenkins/

Jenkins 设置:
Jenkins Settings

Gitlab 网络钩子(Hook):

http://xx.xx.xx.xxx:8080/job/Interim_Build/buildWithParameters?token=TOKEN_NAME



任何帮助都会很棒。谢谢。

最佳答案

我建议您尝试两种解决方案(都为我工作):

  • 使用 Go https://github.com/akira/githookproxy 编写的优雅代理从 Gitlab webhook 转换 json 数据.
    它将接受 webhook 请求,并将其转换为对 target_url 的请求。格式为:
  • payload : JSON 正文
  • START : 开始提交哈希
  • END : 结束提交哈希
  • REFNAME : 引用名称
  • 使用此 Jenkins 插件 https://github.com/jenkinsci/gitlab-plugin 将 jenkins 模拟为 Gitlab CI

  • 对我来说最好的是第一个,因为它简单且更透明。

    关于jenkins - Gitlab Webhook 和 Jenkins : No Data Received,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32723864/

    相关文章:

    jenkins - 将参数从 Jenkinsfile 传递到共享库

    gitlab 连接拒绝 ssh 端口 22 和 443

    git - 是否可以在 gitlab-ci 中将另一个分支构建到另一个目录?

    ruby-on-rails - 在 PPC 上安装 GitLab 在 libv8 (3.11.8.17) 上失败,架构错误?

    java - 即使我有 JAVA 8 也无法安装 Jenkins

    wcf - Jenkins 与 Visual Studio Online 集成认证

    git - 如何在 GitLab 的 merge 请求中请求 CLA 签名?

    gitlab - 有没有办法在gitlab中为一个组添加付款?

    jenkins - Cloudbees Docker 插件 - "?"文件夹

    Jenkins 声明式管道 : find out triggering job