【问题标题】:A question about CI process of "a monolith" project in Jenkins一个关于Jenkins中“单体”项目的CI流程的问题
【发布时间】:2020-06-08 21:31:08
【问题描述】:


我们有一个庞大的单体项目,每天都有很多开发人员将他们的代码签入到项目中。正如您可能猜到的那样,从事这样的项目真的很困难,尤其是在许多开发人员同时工作的情况下。白天经常有签到,构建项目确实需要时间。在这种情况下进行 CI/CD 过程确实很难,但最困难的是,如果开发人员签入导致构建失败,由于签入经常进行,因此会带来大量签入累积。实际上我知道缺少什么,但不知道最佳实践解决方案。我相信缺少的正是 Jez Humble 所著的Continuous Delivery第 3 章基本实践部分

一书中所说的

不要签入损坏的构建

我们将 Jenkins 用于 CI/CD,我们将 TFS 用于 SCM。目前我们的Jenkins版本是2.204.2,TFS Plugin版本是5.157.0

您能帮我了解如何应用这些练习吗?如何防止签入或损坏的构建?这很重要,因为我们每天都在寻找破坏构建的人,并对他/她说:“嘿,你上次签入破坏了构建,你能检查一下吗?因为每个人都在等你。”

【问题讨论】:

    标签: jenkins tfs continuous-integration devops continuous-delivery


    【解决方案1】:

    我认为 TFS 限制了您拥有的可能性,因为它是分支模型。

    当我不得不实施更现代的 ALM 时,我将 SCM 代码从 TFS 迁移到 Git(托管在 TFS 服务器内)。这使我能够在 ALM、构建工作流和标记中添加更多逻辑和功能。有一个 github 存储库,其中包含用于 TFS 到 Git 迁移的项目。

    TFS 迁移link

    【讨论】:

    • 现在似乎很难从 TFS 迁移到 Git,但感谢您的回答和建议
    • 您是否尝试过在单独的构建线程中构建分支并仅在分支构建成功时才批准主干上的分支合并?您可以使用相同的管道 jenkinsfile 并向开发人员展示如何克隆主干并制作分支构建项目。不好的部分是这需要额外的资源和大量的清理工作。我认为有一种方法可以自动删除一段时间内没有运行的作业..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 2019-08-18
    • 2013-01-27
    • 2012-03-19
    • 2021-11-14
    • 2021-05-23
    • 1970-01-01
    相关资源
    最近更新 更多