Jenkins持续整合和夜间构建

时间:2014-04-14 11:08:36

标签: jenkins continuous-integration build-process

我是詹金斯的新手,我喜欢帮助(保证)我认为我应该如何安排工作。

最终目标非常简单。

  • 目标1:当开发人员向mercurial repo提交代码时,Jenkins会提取更改,构建项目并运行单元测试。这种情况在一天中持续发生,因此如果开发人员破坏了某些内容,开发人员将获得尽可能早的反馈。

  • 目标2:每晚,Jenkins从上面拉出最后一个稳定版本并运行自动UI测试。如果这些测试通过,它会在某处发布每晚构建。

我的工作配置达到了目标1,但我正在努力实现目标2。 (不是出版部分,用目标1的最后稳定构建来播种这个工作的想法)。

目前,我打算在HG回购中使用分支来实现这一点。

我的分支看起来像Main>> Int>>开发。

目标1中的工作将适用于Dev分支的提示。 如果构建成功并且测试通过则它将提交到Int分支。

目标2中的工作可以简单地处理Int分支的提示。

这是一般性的吗?

我一直在考虑/考虑: - 像Promoted Builds和Copy Artifacts这样的插件 - 参数化构建 - 下游工作

IMO我的目标相当普遍但我在网上找不到这种方法的很多例子。也许这是显而易见的,没有必要,但我只是想检查一下。

2 个答案:

答案 0 :(得分:0)

过去我在工件库中存储了这样的生成工件。你可以使用像Nexus或Artifactory这样的东西,但我也只使用了平面文件系统。

你可以将构建工件放在源代码控制中,就像你说的那样,但是通常没有理由对编译版本进行版本控制(你应该可以根据版本号重新创建它们) - 它们通常是只需占用你回购中的大量空间。

如果您的版本号本质上是渐进式的,那么您每晚的工作应该能够轻松地提取最新版本。

答案 1 :(得分:0)

也许您可以捕获最后一个好的修订版ID并将其发布到某处。然后每晚构建可以使用最后已知的良好修订。执行此操作的方法可能会有所不同,但其使用的修订ID的概念我想在此处进行通信。这可以防止您必须创建单独的分支。

相关问题