【发布时间】:2020-05-14 01:10:03
【问题描述】:
我们有多个 jenkins 管道作业,步骤如下:
- 构建 -> 单元测试 -> 推送到工件
- 构建 -> 单元测试 -> 部署
- 构建 -> 单元测试 -> 集成测试
等等
管理层希望将所有这些统一到一个大管道中,目前我的团队有两种方法可以做到这一点:
a) 在包含所有阶段的大型管道作业上创建
这样做的缺点是我们不需要在每个单独的构建中部署或发布到工件,因此如果需要,内部会有一些 if 语句将跳过阶段 - 这将使构建历史完全混乱 - 因为一个构建可以做与另一个不同的事情(例如构建#1 发布二进制文件,以及构建#2 运行集成测试)。优点是我们拥有一个工作区和 jenkinsfile。
b) 为每个任务单元创建一个单独的作业。
如“构建”、“集成测试”、“发布”和“部署”,然后创建一个编排器作业,该作业将按阶段调用较小的作业。这样做的缺点是我们仍然将 CI 分散在不同的工作中,并且必须在两者之间传递工件。当然,优点是我们可以在需要时独立运行它们,因此如果您只需要单元测试 - 您只运行单元测试作业,这也会产生正常且有意义的构建历史。
能否请您指出您会选择 a 还是 b,否则您会怎么做?
【问题讨论】: