詹金斯(Jenkins):作业触发从GitHub网络挂钩构建,仅在主节点上运行

时间:2020-03-25 10:12:38

标签: jenkins github webhooks centos8

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

配置:

  1. Jenkins(2.226版)位于VirtualBox中的Centos8 VM计算机上;
  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/”有效负载网址添加到GitHub;

符合预期: 我可以成功ping Jenkins服务器。

  1. 在Jenkins中,我将作业配置为通过SCM触发(已启用“用于GITScm轮询的GitHub挂钩触发器”);
  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挂钩触发器构建操作限制为仅在主节点上执行?

1 个答案:

答案 0 :(得分:0)

我设法找到了解决问题的办法。现在,将触发构建并在构建配置屏幕中设置的节点上运行构建。

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

为此,您需要:

  • 转到“管理Jenkins>配置系统”,然后在“使用情况”字段中选择“仅标签表达与该节点匹配的构建作业”
  • 保存设置。