当代码更改被推送到GitHub时,如何触发Jenkins multibranch管道

时间:2017-02-06 07:34:07

标签: github jenkins continuous-integration jenkins-pipeline multibranch-pipeline

我为GitHub仓库设置了Jenkins工作(multibranch pipeline)。我想在每次向Git仓库推送更改时自动触发该作业。如何使用Jenkinsfile

实现此目的

我想避免Jenkins工作中的任何配置更改,例如Poll SCM等。对于multibranch管道,没有Build whenever a change is pushed to GitHub

这样的选项

3 个答案:

答案 0 :(得分:4)

为了你的工作"做出反应"对于来自GitHub的事件,将作业构建触发器设置为"轮询SCM",但指定时间表,如this Stackoverflow answer所述。

对于声明性Jenkinsfile,这意味着:

pipeline {
  triggers {
    pollSCM('') // Enabling being build on Push
  }
  ...
}

进一步阅读:

答案 1 :(得分:1)

到目前为止最简单的选择(我知道)是远程告诉Jenkins Git插件,对定义的存储库有一个新的提交。但是,这不会触发詹金斯立即开始工作。会发生什么是Git插件启动(重新)索引特定的存储库。如果检测到更改,则会启动Jenkins作业。

从您的存储库(GitHub,GitLab等)中,您应该触发以下URL:

http://my-jenkins-host/git/notifyCommit?url=git@gitlab.example.com:group/repository.git&delay=0sec

url的值必须与您在Jenkins作业(Git插件)中配置的SCM URL相匹配!

问:可能是你的Jenkins在根上下文(/)下部署了,在这种情况下,网址将是http://my-jenkins-host/context-path/git/...

答案 2 :(得分:0)

每当新的变更者被推送到github时,您都可以使用此描述性管道脚本来自动构建管道

context.callbackWaitsForEmptyEventLoop = false;

此外,您还应该使用相关的秘密令牌启用github webhook。