对github推送的更改只运行一次Jenkins作业

时间:2015-03-08 07:44:11

标签: github jenkins jenkins-plugins jenkins-cli

我跟着this answer设置了詹金斯的工作,并且工作正常。

我已经在github master commit push上安排了一个Job

Poll SCM : * * * * *

但是,它每分钟都会不断开始构建作业。

如何限制它,以便每次提交只运行一次?

2 个答案:

答案 0 :(得分:1)

这种方法实际上是民意调查。这意味着如果GitHub存储库中没有任何更改,Jenkins会每分钟扫描一次。

如果你想从Github真正推送到你的Jenkins你需要将Github WebHooks与Jenkins集成。我写了一篇blog post on this subject。滚动到第2部分:“Jenkins - Github集成”

如果您只是玩游戏或将其用于个人开源项目,您可能需要查看Jenkins的替代品,如Drone.io或Codeship.io。这些服务通常免费提供给开源,只需点击几下即可配置Github Webhooks。但它们不适合复杂的企业构建。

答案 1 :(得分:1)

有几种选择。我最成功的两个是:

  1. 使用git commit hook致电Jenkins rest API开始工作。简单的方法是直接调用作业的构建API调用(类似于 http:// jenkinsmachine:8080 / job / your-jobs-name / build ),但硬编码工作命名并分支到git hook脚本中。更灵活的方法是使用Git plugin's自己的rest mini-API,如Kohsuke在his blog中所述。
  2. 使用Throttle Concurrent Builds plugin之类的内容或创造性地使用从属节点和执行程序来限制该作业的当前构建数量。
  3. 第一个选项是首选,但有时候从git机器对jenkins机器的休息访问不可用,所以在这种情况下可以使用第二个选项。