jenkins

时间:2015-10-19 20:34:49

标签: svn jenkins continuous-integration

我负责在公司实施CI。但现在我怀疑了。 哪一个最好?

我应该为每个系统/软件创建3个杰出作业

  1. 代码的构建和质量测试
  2. 在测试环境中构建,质量测试和部署
  3. 生产,质量测试和生产部署
  4. 或者更好地创建下游条件作业,例如: How to conditionally build other projects?

    主干始终将生产最后一个版本。

    对于每个更改,开发人员必须从主干到分支进行复制,处理代码然后调用jenkins在分支中运行以对更改进行同步。一旦认证完成并且没关系,开发人员将再次调用jenkins将该代码从分支部署到生产。

    正如@michaelbahr所说 [这篇文章已编辑] 我可以从工件库中获取最后一个认证版本,但是如何从中复制/合并代码在从认证(测试)环境中获取包并将其移至生产后,使用jenkins自动分支到主干?

2 个答案:

答案 0 :(得分:1)

正如您所说,您负责实施CI,我认为您的公司没有很多CI经验。因此,我建议使用两个单独的作业而不是下游管道。

第一个作业应该通过post-commit钩子在代码库中发生更改时自动触发。它将包构建,测试和部署到测试环境。它应还将快照包部署到工件存储库,如Nexus。

如果您对结果感到满意,则可以手动触发从工件存储库中获取包的第二个作业,并将其部署到生产中(并验证部署是否成功)。没有必要再次建立一个你已经有信心的包。

答案 1 :(得分:1)

哪种方法最好取决于您的工程,测试和流程的质量。一种方法 - 将所有三项工作放在一起(可根据需要将其他工作联系起来)。

例如:

使用MultiJob PluginValidated Merge Plugin工作流程如下:

  1. 开发人员将代码推送到JENKINS(git push)而不是SCM repo。
  2. Jenkins构建代码,运行单元测试并使结果在本地可用 - 或者在存储库中更好。
  3. 调用(按顺序)附加作业 在集成环境中安装并运行构建的代码和集成测试。请注意,使用Multi Job插件测试可以同时在多个环境中并行运行。成功完成所有测试作业后,验证合并会将更改接受到存储库中。 (如果失败,则开发人员更改不会添加到存储库中。)
  4. 另一项后续工作将获得成功的结果并部署到生产中。
  5. 可以使用集成清理作业来重置集成环境。
  6. 请注意,使用单独的作业进行生产部署还允许在任何给定时间重新部署。如果认为可疑,生产部署也可以从自动化中切断。

    最后,请注意,测试准确性或完整性水平不足会导致系统危险不稳定!