【问题标题】:Jenkins: Jobs triggered to build from GitHub web-hook run only on master node詹金斯:从 GitHub web-hook 触发构建的作业仅在主节点上运行
【发布时间】:2020-03-27 00:33:02
【问题描述】:

最初的想法是在将更改合并到 GitHub 上的主分支后,在特定节点(从属节点)上触发特定构建。

配置:

  1. Jenkins(版本 2.226)在 VirtualBox 中的 Centos8 虚拟机上;
  2. VM 设置:Java 11 OpenJDK(openjdk 版本“11.0.5”),git 版本 2.18.2

已完成的步骤:

  1. 创建了一个 Jenkins 项目(作业),该项目克隆了一个 Github 存储库并在其上运行一些 mvn 命令;
  2. 将作业配置为在新节点上运行,除了主节点;

正如预期的那样: 作业运行正常。

  1. 我使用 ngrok 公开了我的 Jenkins 服务器并生成了一个外部链接;
  2. 将“http://bla.ngrok.io/github-webhook/”有效载荷 URL 添加到 GitHub;

正如预期的那样: 我可以 ping 通 Jenkins 服务器了。

  1. 在 Jenkins 中,我将作业配置为通过 SCM 触发(启用 'GitHub hook trigger for GITScm polling');
  2. 然后我去 GitHub 并提交对 master 分支的更改。

实际结果: 构建被触发,但仅在主节点上。

  1. 我将主节点标记为离线,以强制触发的作业在新的从节点上执行。 实际结果: 什么都没有发生。

  2. 我启用了主节点并尝试再次触发作业。 实际结果: 什么都没有发生。

我已经对 jenkins.log 文件进行了尾部编辑以查看发生了什么,并记录了“戳构建”操作。在此之后,它可能会等待执行构建,但这永远不会发生。最后,启动“定期后台构建丢弃器”。

2020-03-24 21:35:11.733+0000 [id=16]    INFO    o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/some/some_project from [someip] ⇒ http://blah.ngrok.io:8080/github-webhook/
2020-03-24 21:35:11.734+0000 [id=16]    INFO    o.j.p.g.w.s.DefaultPushGHEventSubscriber$1#run: Poked simple_build
2020-03-24 21:39:07.386+0000 [id=206]   INFO    hudson.model.AsyncPeriodicWork#lambda$doRun$0: Started Periodic background build discarder
2020-03-24 21:39:07.403+0000 [id=206]   INFO    hudson.model.AsyncPeriodicWork#lambda$doRun$0: Finished Periodic back

我错过了什么吗?

web-hook 触发器构建操作是否仅限于在 Master 节点上执行?

【问题讨论】:

  • 好多了,谢谢!

标签: jenkins github webhooks centos8


【解决方案1】:

我已经设法找到解决问题的方法。现在构建被触发并在构建配置屏幕中设置的节点上运行。

我所做的是将主节点设置为仅在需要时使用。

为此,您需要:

  • 转到“管理 Jenkins > 配置系统”并在“使用”字段中选择“仅构建标签表达式匹配此节点的作业”
  • 保存设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    • 2014-10-23
    • 2018-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-19
    • 1970-01-01
    相关资源
    最近更新 更多