当代码更改被推送到GitHub时,如何触发Jenkins多分支管道
我有一个Jenkins工作(当代码更改被推送到GitHub时,如何触发Jenkins多分支管道,github,jenkins,continuous-integration,jenkins-pipeline,multibranch-pipeline,Github,Jenkins,Continuous Integration,Jenkins Pipeline,Multibranch Pipeline,我有一个Jenkins工作(多分支管道)设置,用于GitHub回购。我想在Git回购有变更时自动触发该作业。如何使用Jenkinsfile实现这一点 我希望避免Jenkins作业中的任何配置更改,如轮询SCM等。对于多分支管道,每当将更改推送到GitHub时,都没有生成这样的选项。对于您的作业,“反应”来自GitHub的事件,请将作业生成触发器设置为“轮询SCM”,但不要指定计划,如上所述 对于声明性文件,这意味着: pipeline { triggers { pollSCM('')
多分支管道
)设置,用于GitHub回购。我想在Git回购有变更时自动触发该作业。如何使用Jenkinsfile
实现这一点
我希望避免Jenkins作业中的任何配置更改,如轮询SCM
等。对于多分支管道,每当将更改推送到GitHub时,都没有生成这样的选项。对于您的作业,“反应”来自GitHub的事件,请将作业生成触发器设置为“轮询SCM”,但不要指定计划,如上所述
对于声明性文件,这意味着:
pipeline {
triggers {
pollSCM('') // Enabling being build on Push
}
...
}
进一步阅读:
到目前为止(据我所知),最简单的选择是远程告诉Jenkins Git插件,定义的存储库有一个新的提交。然而,这不会触发詹金斯立即开始工作。发生的情况是Git插件开始(重新)索引特定的存储库。如果检测到更改,则开始Jenkins作业
从存储库(GitHub、GitLab等)中,您应该触发以下URL:
http://my-jenkins-host/git/notifyCommit?url=git@gitlab.example.com:group/repository.git&delay=0秒
url
的值必须与您在Jenkins作业(Git插件)中配置的SCM url匹配
明白了:可能是您的Jenkins未部署在根上下文(/
)下,在这种情况下,URL将是http://my-jenkins-host/context-path/git/...
每当将新的更改推送到github时,您可以使用此描述性管道脚本自动构建管道
pipeline{
agent any
triggers {
githubPush()
}
...
}
此外,还应使用相关的秘密令牌启用github webhook。如果配置mbp,则应该这样做。添加源代码(git)并填写repo端点。确保根级别有一个Jenkins文件,并通过Jenkins文件将构建配置模式设置为。然后确保github触发jenkins(通过项目>设置>服务>jenkins(github插件))@Rik不幸的是,这似乎不起作用。我已经涵盖了你提到的所有要点。当我添加poll scm
选项时,这一点起作用了,但这正是我想要避免的。再补充一个细节——我正在使用Jenkins Enterprise,我们在那里有一个文件夹来创建与我们团队相关的作业。在我的工作中,我们为gitlab配置了这个文件夹,这很有效。我认为github是相同的。如果我今天晚些时候有时间的话,我会检查一下我是否能让它在github上运行,然后发布一张截图谢谢你的帮助@Rik,非常感谢!如果我使用的是Git
(不是Github
)插件,根据我的经验,它可以正常工作,这是在获得Github触发的Jenkins工作时可能出现的问题/解决方案中的一个。你有没有机会看看我的最新问题?我确实看过,但我不知道。在你发送的Jenkins文档中:。对于与GitHub或BitBucket等源集成的管道,可能不需要触发器,因为基于webhooks的集成可能已经存在。