Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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
仅在提交给主服务器时触发Jenkins管道作业_Jenkins_Github_Jenkins Pipeline - Fatal编程技术网

仅在提交给主服务器时触发Jenkins管道作业

仅在提交给主服务器时触发Jenkins管道作业,jenkins,github,jenkins-pipeline,Jenkins,Github,Jenkins Pipeline,我有一个由github webhook触发的Jenkins管道作业,因此一旦提交到github,就会触发构建。但是,我只希望在提交主分支时触发构建。当前,任何提交都会触发生成,即使提交是在功能分支上进行的 有没有办法不借助多分支机构的工作来实现这一点 在Jenkins配置、Jenkins文件或Github repo的webhook中,我看不到任何方法可以对分支(触发器)进行过滤 我能找到的唯一特定于分支的信息是代码将从哪个分支生成,但对任何其他分支的提交仍将“触发”生成 有人能帮忙吗?所以我越是

我有一个由github webhook触发的Jenkins管道作业,因此一旦提交到github,就会触发构建。但是,我只希望在提交主分支时触发构建。当前,任何提交都会触发生成,即使提交是在功能分支上进行的

有没有办法不借助多分支机构的工作来实现这一点

在Jenkins配置、Jenkins文件或Github repo的webhook中,我看不到任何方法可以对分支(触发器)进行过滤

我能找到的唯一特定于分支的信息是代码将从哪个分支生成,但对任何其他分支的提交仍将“触发”生成


有人能帮忙吗?

所以我越是深入研究,就越意识到Stephen是对的,我应该使用多分支管道方法。事实上,在新的蓝海用户界面中,默认情况下所有管道都是多分支的,这进一步表明这是一条可行之路


至于触发构建的第二个问题,这似乎确实与已设置的分支源有关。这最初使用的是git分支源代码。一旦将其更改为github分支源,并且github服务器在jenkins中正确配置,则触发器将按预期工作。

您可以通过以下步骤更改哪个分支将“触发”构建的模式


位置:Jenkins-->新项目-->管道-->生成触发器-->高级-->允许的分支-->按***

筛选分支请参阅问题的GitHub webhook部分的答案。也许它会给你一些其他的想法。你对多分支工作类型有什么问题吗?@StephenKing我试着创建一个多分支工作作为解决方案。然而,在这种情况下,我很难让webhook触发构建。因此,我最终得到了一个Jenkins文件,在该文件中,我可以包含以我推送到的分支为条件的阶段(这很理想),但是我必须手动触发构建。我将多分支配置设置为使用webhook。并在我的回购协议中创建webhook。但推送到任何分支都无法触发构建。(我要提醒大家的是,我对这一切都很陌生,所以可能在某个地方犯了一个新手错误!)我建议你尝试修复webhook,而不是解决这个问题。因此,我正在尝试多分支构建,但似乎仍然存在构建未触发的问题。在分支源代码中,我按照我们工具团队的建议设置了一个“GIT”源代码。然而,从这个链接看来,这应该是GitHub。有人知道我是否可以使用其中一个吗?或者是github在推送到github时自动触发吗?你是怎么做到的?令人沮丧的是,总体上似乎缺少管道方面的例子。