我为GitHub仓库设置了Jenkins工作(multibranch pipeline
)。我想在每次向Git仓库推送更改时自动触发该作业。如何使用Jenkinsfile
?
我想避免Jenkins工作中的任何配置更改,例如Poll SCM
等。对于multibranch管道,没有Build whenever a change is pushed to GitHub
答案 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。