繁体   English   中英

Jenkins -(私有子网)WebHook with Github 不会触发自动构建

[英]Jenkins - (private subnet) WebHook with Github does not trigger automatic build

问题 :

我正在使用 CI 设置来配置 github - Jenkins 网络钩子,用于触发在 github 上提交代码的构建。 以下是当前配置的详细信息

  • 我的 Jenkins 在 AWS 私有子网中
  • 我有插件:“GitHub Web Hook”配置了 API URL、用户名和 OAuth 令牌,测试凭据给出了成功消息。
  • 我在“构建触发器”下选择了“将更改推送到 GitHub 时构建”

Jenkins 工作与手动构建完美配合。 但是当在 github 上完成代码提交时它不起作用(自动构建触发器)。

需要帮助:

  1. 我如何详细调试这种情况,如果“Git hub webhook”配置测试有效,我能说 git hub 能够连接到我的私有 Jenkins 或者它做其他事情来测试吗?
  2. 请纠正/指导使其工作的步骤

在度过了几个忙碌的小时后,我已经让它进入​​了工作状态。 以下只是我所做的总结:

  • 您可以通过两种方式完成,Poll SCM 或 WebHooks(在此处解释)
  • JenkinsURL/job/job-Name/scmPollLog 是检查轮询日志的地方
  • 我已经将我的 Jenkins 移到了公共子网中(github 需要与 jenkins 交谈)
  • 转到https://github.com/settings/tokens并创建您的访问令牌
  • 在 Jenkins > 管理 Jenkins > 配置系统 > 配置 GitHub Web Hook,API URL - “ https://api.github.com ” 用户名 - 你的 github 用户名,上面创建的 OAuth 令牌 - 测试它是否成功!!
  • 导航到作业配置并在 Build Triggers 下,选择“在将更改推送到 GitHub 时构建”
  • 转到https://github.com/yourID/repoName/settings/hooks并添加一个 webhook
 Payload URL - http://jenkinsIP:port/github-webhook/ Content type - application/x-www-form-urlencoded Secret - none Which events would you like to trigger this webhook? - Just the push event Active > Add webhook

您可以检查提交更改到 github,github 应向您的 jenkins 服务器发送一个 POST 请求,这将触发构建。 您可以在“最近交付”部分查看日志。

在此处输入图片说明

如果可以对私有 jenkins 服务器(例如使用端口转发或任何其他方式)进行同样的操作。 请更新。

鉴于此评论已闲置一段时间,我将扩展cody.codes评论。 您可以配置一个 webhook 负载传送服务,例如smee.io ,它将拦截 GitHub 触发的 webhook。

这篇Jenkins 文章详细概述了设置说明,但简化的概述是:

  1. GitHub 事件(例如 SCM 更改)发生,并触发 Webhook 触发到您配置的 Smee 通道
  2. Smee 通道(下图中的蓝色框)接收此 webhook
  3. Jenkins 服务器订阅了您的自定义 smee 频道,发现那里有新事件,并触发您的工作。

GitHub、Smee 和 Jenkins 之间通信的简化视觉概览

Jenkins 仅在此设置中建立出站连接(订阅您的 Smee 频道需要此连接),因此您的 Jenkins 服务器可以保留在您的防火墙之后。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM