Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当代码更改被推送到GitHub时,如何触发Jenkins多分支管道_Github_Jenkins_Continuous Integration_Jenkins Pipeline_Multibranch Pipeline - Fatal编程技术网

当代码更改被推送到GitHub时,如何触发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('')

我有一个Jenkins工作(
多分支管道
)设置,用于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的集成可能已经存在。