代码之家  ›  专栏  ›  技术社区  ›  satoru

与哈德逊持续集成的工作流程是什么?

  •  6
  • satoru  · 技术社区  · 15 年前

    今天我被介绍给哈德逊。

    我以前听说过持续集成,但我不知道什么是CI服务器。

    在Ubuntu中安装Hudson非常容易,几分钟后我就成功地建立了一个实例。

    但是我不太了解CI服务器的工作流程,或者应该如何使用它?

    请告诉我,如果你有关于CI的经验,提前谢谢。

    编辑:

    我正在使用 水银的 作为我的 单片机 我想知道什么是正确的使用方法 哈德森 .

    我已经安装了 Mercurial插件 属于 哈德森 ,我用本地存储库创建了一个新作业。当我在存储库中提交时, Hudson 作业是用我的源代码的最新版本生成的。

    如果我使用的是远程存储库,那么工作流是什么样的?

    是不是像下面这样?

    1. 建立一个 哈德森 存储库中的作业
    2. 开发人员对存储库进行本地克隆
    3. 开发人员提交和推送更改
    4. 远程存储库使用传入的变更集进行更新
    5. 运行一个 哈德森 建造

    可能有什么我误解了,请帮我指出。

    2 回复  |  直到 15 年前
        1
  •  8
  •   Pascal Thivent    15 年前

    Continuous Integration 是指“集成软件”的过程,即尽可能频繁地(最终在每一组变更之后),通过获得即时反馈避免任何大爆炸集成和所有后续问题。

    要实现持续集成,首先需要自动化软件的构建(其中构建方法当然包括编译源代码、打包源代码,还包括编译测试、运行测试、运行质量检查等,任何有助于获得有关代码运行状况反馈的信息)。然后,您需要在特定事件(存储库中的更改,临时事件)的源的最新版本上触发构建,以生成报告并在失败时(通过邮件、Twitter等)发送通知。

    这正是CI引擎的职责:提供触发机制,能够获取源的最新版本,运行构建,生成和发布报告,发送通知。CI引擎确实实现了这一点。

    而且,由于运行一个构建需要CPU和磁盘,因此CI引擎通常运行在一台专用的机器上(如果您想构建大量项目,甚至可以运行一个机器场)。

    现在回到你的问题上来。一旦你运行了哈德逊,就对它进行配置。( 管理Hudson配置系统 ):设置JDK、构建工具等,然后设置 哈德森工作 并遵循以下步骤:配置源存储库的位置、构建工具、触发器、通知通道,然后就完成了(您可以做更复杂的事情,但这只是一个开始)。

    有关设置的详细信息,请检查:

        2
  •  7
  •   Dave Bacher    15 年前

    Martin Fowler's overview of continuous integration 是规范引用之一。在我看来,使用自动化来确保代码库的健康是您可以设置的最有用的事情之一。


    更新 很抱歉,我没有太多时间来扩大我的答复。@Pascal_Thivent是对的,为了有效地使用CI,您需要能够自动化构建、测试等。CI实际上是一个很好的强制功能。对我来说,如果我开始认为在哈德逊城建一座大楼太痛苦的话,这就是一个小小的警告标志。这意味着有些事情不太对劲。

    我喜欢Hudson的特点是它足够灵活,可以适应不同的工作流程。我们将它用于构建/单元测试和发布。而且它消除了对某些只在一个人的环境中工作的发布过程的大量担忧。

    我不喜欢Hudson的原因是当新的构建中断插件时,它偶尔会不稳定。我已经进行了一些升级(10次中有2次升级)因为不兼容而变得很糟糕。我现在做两件事:

    1. 我从来没有立即将我的团队的哈德逊服务器升级到最新和最棒的版本。我通常只在有重要的新特性或错误修复时进行升级。
    2. 我现在有了一个基本的哈德逊实例,我的所有插件都安装在一个虚拟机上,其中有一些虚拟构建,在公共服务器上进行升级之前,我会启动这些虚拟构建来测试任何新的升级。