詹金斯的工作流程

Workflow to jenkins

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

我是否应该为每个 system/software 创建 3 个杰出工作,因为

  1. 代码的构建和质量测试
  2. 在测试环境上构建、质量测试和部署
  3. 构建、质量测试和生产部署

或者最好创建下游有条件的工作,如下所示: How to conditionally build other projects?

t运行k 始终是生产中的最后一个版本。

对于每一个更改,开发人员都必须从 t运行k 复制一份到分支,处理代码然后调用 jenkins 到分支中的 运行 以确认更改。一旦认证完成并且没问题,开发人员将再次调用 jenkins 将该代码从分支部署到生产环境。

正如@michaelbahr 所说[此post 已编辑] 我可以从神器中获取最后一个认证版本存储库,但是我如何 copy/merge 在 jenkins 从认证(测试)环境获取包并将其移动到生产环境后,我如何 copy/merge 自动使用 jenkins 从分支到 t运行k?

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

第一个作业应该通过 post-commit 挂钩在您的代码存储库发生更改时自动触发。它构建、测试包并将其部署到测试环境。它应该还将快照包部署到像 Nexus 这样的工件存储库

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

哪种方法最好取决于您的工程、测试和流程的质量。一种方法 - 是在一项工作中完成所有这三项工作(这可能会根据需要链接其他工作)。

例如:

使用 MultiJob Plugin, and Validated Merge Plugin 的工作流程是这样的:

  1. 开发人员将代码推送到 JENKINS(git 推送)而不是 SCM 存储库。
  2. Jenkins 构建代码,运行s 单元测试并使结果在本地可用 - 或者在存储库中更好。
  3. (按顺序)调用其他作业以 在集成环境中安装并 运行 构建代码和集成测试。请注意,使用 Multi Job 插件测试可以 运行 同时在多个环境中并行进行。在所有测试作业成功后,经过验证的合并将更改接受到存储库中。 (如果失败,则开发人员更改不会添加到存储库)。
  4. 另一个后续作业获取成功结果并部署到生产环境。
  5. 集成清理作业可用于重置集成环境。

请注意,有一个单独的工作来部署到生产环境也允许在任何给定时间重新部署。如果认为可疑,也可以将生产部署与自动化分开。

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