Jenkins持续集成和夜间构建
我是詹金斯的新手,我想得到一些关于我应该如何安排工作的帮助(安慰) 最终目标相当简单Jenkins持续集成和夜间构建,jenkins,continuous-integration,build-process,Jenkins,Continuous Integration,Build Process,我是詹金斯的新手,我想得到一些关于我应该如何安排工作的帮助(安慰) 最终目标相当简单 目标1:当开发人员将代码提交给mercurial repo时,Jenkins会进行更改、构建项目并运行单元测试。这种情况在一天中不断发生,因此如果开发人员破坏了某些东西,他们会得到尽可能早的反馈 目标2:詹金斯每晚从上面提取最后一个稳定的构建并运行自动化UI测试。如果这些测试通过,它会在某处发布夜间构建 我有一个工作配置,以实现目标1,但我正在努力与目标2。 (不是出版部分,而是用目标1的最后一个稳定构建来
- 目标1:当开发人员将代码提交给mercurial repo时,Jenkins会进行更改、构建项目并运行单元测试。这种情况在一天中不断发生,因此如果开发人员破坏了某些东西,他们会得到尽可能早的反馈
- 目标2:詹金斯每晚从上面提取最后一个稳定的构建并运行自动化UI测试。如果这些测试通过,它会在某处发布夜间构建
在我看来,我的目标相当普遍,但我在网上找不到很多这种方法的例子。也许很明显没有必要,但我只是想检查一下。在过去,我将生成的工件像这样存储在工件存储库中。您可以使用Nexus或Artifactory之类的工具来实现这一点,但我也使用了平面文件系统 正如您所说,您可以将构建工件放在源代码控制中,但是通常没有理由对编译的构建进行版本控制(您应该能够根据版本号重新创建它们)——它们通常只会占用您的repo中的大量空间
如果您的版本号本质上是递增的,那么您的夜间工作应该能够相当容易地获取最新版本。也许您可以捕获最后一个好的修订ID并将其发布到某个地方。然后夜间构建可以使用最后一次已知的良好修订。执行此操作的方法可能会有所不同,但我想在这里介绍的是使用修订ID的概念。这将避免您必须创建一个单独的分支。我没有遇到过这种情况,但在阅读之前,我想到了您的解决方案。