【问题标题】:Declarative Jenkins pipeline: how to remove branches from the Project without deleting them from svn?声明式 Jenkins 管道:如何从项目中删除分支而不从 svn 中删除它们?
【发布时间】:2018-04-30 14:09:42
【问题描述】:

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

我想保持分支 # 低于 15 以在 Jenkins 中显示。 问题是我们 DONT REMOVE 合并到主分支(master)后的特性分支 - 因此 Jenkins 仍在索引它们。

我的调查导致:

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

2) 我尝试在声明性管道中使用“孤立项策略”,但它只会删除某个分支上的“构建”,而不是从 Jenkins 视图中删除分支本身。

我是 Jenkins 和声明式管道的新手——也许有一个很好的解决方法?

【问题讨论】:

    标签: git jenkins jenkins-pipeline multibranch-pipeline


    【解决方案1】:

    要回答如何在不从 SVN 中删除的情况下删除分支的问题,AFAIK 这是不可能的,也不是理想的做法。您需要做的就是清理 SVN 中的分支.因为the reason for using multibranch-pipeline is to have pipeline for every individual branch

    正如您所说,问题在于不清理 SVN 中的分支,删除每个分支中的 Jenkinsfile 确实是一个糟糕的解决方案。为所有分支和 PR 自动构建会在 Jenkins 上增加负载,并进一步减慢构建和部署过程。

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

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

    您甚至可以通过相应的配置来排除/包含分支。但这需要定期监控,以便在需要时排除和包含它们。

    希望这在一定程度上有所帮助。谢谢!

    【讨论】:

    • 嗨,感谢您的帖子和减少 Jenkins 工作量的建议。在我的情况下,这个措施是不必要的,因为通常没有人修改旧分支,所以它们不是由多分支管道构建的。尽管它们每次都由 scm step 索引。但我想除非我们选择在 SVN 中删除分支,否则这是保持多分支为我们工作的唯一方法。
    猜你喜欢
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多