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

Cha*_*yak 6 git continuous-integration github jenkins devops

问题:

我正在进行CI设置以配置github - Jenkins web钩子,用于在github上使用代码提交触发构建.以下是当前配置详细信息

  • 我的Jenkins位于AWS私有子网内
  • 我有插件:"GitHub Web Hook"配置了API URL,用户名和OAuth令牌,Test Credentials给出了成功消息.
  • 我在"构建触发器"下选择"在将更改推送到GitHub时构建"

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

需要帮助:

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

Cha*_*yak 7

经过一些忙碌的时间后,我已经达到了工作状态.以下只是我所做的总结:

  • 您可以通过两种方式完成此操作,轮询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令牌 - 测试成功!!
  • 导航到作业配置,然后在"构建触发器"下,选择"将更改推送到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
Run Code Online (Sandbox Code Playgroud)

您可以检查将更改提交到github,github将向您的jenkins服务器发送POST请求,这将触发构建.您可以查看"最近交货"部分中的日志.

在此输入图像描述

如果可以为私有jenkins服务器执行相同操作,例如使用端口转发或任何其他方式.请更新.

  • PollSCM 或 WebHooks 后面的解释here链接在哪里? (2认同)
  • 将 Jenkins 完全暴露在互联网上?Gah,必须有更好的方法。也许限制到源 IP 范围或仅某些路径?有任何想法吗?:( (2认同)
  • @emmdee我刚刚看到了这个新的博客文章,内容涉及使用防火墙后的Jenkins服务器进行设置:https://jenkins.io/blog/2019/01/07/webhook-firewalls/ (2认同)