声明性Jenkins管道:如何从项目中删除分支而不从svn中删除它们?

时间:2018-04-19 02:34:09

标签: git jenkins jenkins-pipeline multibranch-pipeline

我们有多分支管道项目来构建每个提交。 由于每个错误和功能都在一个单独的分支中完成 - 我在Jenkins项目(多分支管道)中的分支列表会自动增长得非常快。

我想将分支#15保存在Jenkins中。 问题是我们在合并到主分支(master)之后不要删除功能分支 - 因此Jenkins仍然将它们编入索引。

我的调查导致:

1)我可以手动从每个分支中删除Jenkinsfile,这是一个很差的解决方案。

2)我尝试使用"孤儿项策略"在声明性管道中,但它只会删除" builds"在Jenkins看来,在某个分支而不是分支本身。

我是Jenkins和Declarative管道的新手 - 也许有一个好方法可以解决?

1 个答案:

答案 0 :(得分:0)

要回答如何删除分支而不删除SVN 的问题,AFAIK是不可能的,也不是理想的做法。所有你需要做的就是清理SVN中的分支机构。因为 the reason for using multibranch-pipeline is to have pipeline for every individual branch

正如你所说,问题不在于清理SVN中的分支,并且在每个分支中删除Jenkins文件确实是一个糟糕的解决方案。对所有分支和PR进行自动构建将在Jenkins上创建负载,并进一步减慢构建和部署过程。

因此,作为一种解决方法,我们可以做的是通过限制分支在提交发生时自动构建来减少Jenkins的负载,就像这样。

enter image description here

This will auto build only for master, develop branches and all the PRs 是强制性的。除了这些之外,任何其他功能分支或用户故事分支都需要使用“立即构建”手动构建,作为multibranch-pipeline的一部分,作业将自动创建。

您甚至可以通过相应配置来排除/包含分支。但需要定期监控,以便在需要时将其排除并包含在内。

enter image description here

希望这在某种程度上有所帮助。谢谢!