【问题标题】:Continuous integration and pre-integration持续集成和预集成
【发布时间】:2011-04-05 18:01:36
【问题描述】:

我发布了一个部分问题,部分漫无边际,希望它能引起讨论并回答我的问题,如果我诚实的话,这更像是一系列要求。

在我的工作场所,构建是非常劳动密集型的。这是因为我们的团队非常小,并且怀疑自动化将不可避免地出错,因为我们团队中没有专业知识来正确地完成它。我认为这是一个合理但有缺陷的论点。我身边确实有一位中层经理,他似乎很喜欢自动化的概念,并且非常成功地使用了许多小型自动化功能。

我的目标是将某种自动化构建环境与我们的发布系统结合起来,这需要管理人员制作各种文档。这是 TickIT 认证的要求,不可协商。我想象做的是产生一个(Windows)工作流——我们为此设置了 IT 基础架构并且在公司范围内都很熟悉——它提示管理人员提供必须提交的文档,以便进行构建和发布。我们不是软件公司,我们是销售软件的公司,所以这些功能需要在非技术方面进行宣传。

因此,总而言之,我们的用例如下所示:

  • 经理审核任务跟踪器并根据当前状态授权发布
  • 工作流程开始,缓存了当前的 SVN 修订版
  • 工作流程要求项目经理提供大量pdf文档等需要内置到安装包中
  • 工作流会在 CruiseControl 等集成管理器上启动先前缓存的 SVN 修订版上的构建过程(我将持续集成所做的所有事情都包括在内,包括单元测试)
  • 已完成的安装包会自动安装在各种虚拟机上(支持的完整操作系统和语言集),并且可供 QA 使用
  • 从 QA 处完成签核后,安装包将发布到网络

当然,由于没有任何东西可以正常工作,因此应该包括“中断”工作流程并随时手动进行的能力,因为我们不希望发布被一台无法完成工作的愚蠢机器拖住一点常识也可以。

有没有人有任何可以被认为是这种过程的案例研究,或者任何关于它可能是多么简单或具有挑战性,或者它是多么合适?

【问题讨论】:

  • 你认为呢?如果我要更具体一点,我可能会将其命名为“我如何将 Windows 工作流编程为……”或“我如何让 CCNet 做……”。我想我的问题含糊不清。
  • 这有点悬而未决,这就是我没有投票关闭的原因。通常 SO 更适合特定的编程问题(带有代码示例)

标签: workflow continuous-integration cruisecontrol.net build-automation nant


【解决方案1】:

我们最近为我们的一位客户解决了这个问题。我们的实施涉及以下组件(但您可以根据您的组织使用不同的工具来实现相同的目标)。

  • JIRA 工作流程 - 编排流程(并捕获性能指标)管理审批并跟踪历史记录以供审核
  • JIRA 插件 - 通过 CI 服务器 (Hudson\Jenkins) 触发构建\部署\测试。监听器:响应来自 Hudson\Jenkins 的状态更新
  • Jenkins 插件 - 与 JIRA 交互
  • build-pipeline-plugin - 管理 Jenkins 工作流程
  • 部署脚本 - 由 Jenkins\Groovy 编排

听起来很复杂,但其中很多工具都有很好的 API 可供使用,因此您可以在合理的时间范围内获得稳定的解决方案。

干杯,

杰夫

【讨论】:

    【解决方案2】:

    在对此进行了一些研究后,我最近几天一直在玩 CruiseControl.NET。凭借其可扩展性,它看起来可能可以完成我正在寻找的一切。在构建结束时触发另一个插件来完成所有部署和签核没有任何障碍。有些要求很复杂,而且需要的时间不确定,所以我认为像 WWF 这样的状态持久性会很有价值。我必须进行试验并与我的同事一起提出。

    【讨论】:

      【解决方案3】:

      为此考虑使用 CloudMunch。 CloudMunch 提供了一个构建引擎(基于 Jenkins),在它之上构建进度工作流,以便在其之上管理手动工作流,并提供干净的 RBAC 支持来管理您正在查看的内容。

      免责声明:我在 CloudMunch 工作。

      【讨论】:

        猜你喜欢
        • 2018-06-21
        • 2010-12-06
        • 1970-01-01
        • 2011-11-14
        • 2019-11-28
        • 1970-01-01
        • 1970-01-01
        • 2013-01-07
        • 2019-06-15
        相关资源
        最近更新 更多