[运行单元测试] => [运行集成测试] => [QA 推广] =-6ren">
gpt4 book ai didi

Jenkins-workflow - 提升阶段(比 "input"更好的解决方案)?

转载 作者:行者123 更新时间:2023-12-01 04:55:21 29 4
gpt4 key购买 nike

我们开始使用 jenkins-workflow 来管理我们的持续交付管道。

这是我们正在做的一个简单的管道示例:

[构建项目] => [运行单元测试] => [运行集成测试] => [QA 推广] => [在 QA 中部署] => [UAT 推广] => [在 UAT 中部署]

在哪里:
[QA Promotion] 和 [UAT Promotion] 是等待某人“促进”构建的阶段(通过“输入”步骤实现)。

这纯粹是为了美观,但我们发现不太好的一件事是,在升级阶段等待的每个构建都显示为“进行中”(进度条无限期运行)。这很奇怪,因为如果最后 10 个构建未在 QA 中部署,那么我们将结束 10 个构建显示为“正在运行”。

我知道等待输入不会导致任何性能问题。因为如果这些输入步骤没有封装在一个节点内,那么它们只会消耗享元执行器(假设不占用任何重要计算能力的未计数槽,src:https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md)。

所以,我想知道是否存在更好的解决方案,可以让我们“促进”使用 Jenkins Pipeline 构建,而不会出现上述美学上的不便。

谢谢

最佳答案

里程碑插件在这里可用:https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Milestone+Step+Plugin

它能做什么:

默认情况下,流水线构建可以并发运行。里程碑步骤确保较旧的构建不会覆盖较新的构建,因此如果较新的构建已经通过,则旧构建将永远不会被允许通过里程碑(它被中止)。

这一步在持续交付管道中特别有用,其中构建顺序非常重要,因为顺序定义了将要交付的内容,因此它提供了一个控制点,当新的提交已经存在时,它会中止任何试图交付旧提交的构建发表。

通常,此步骤授予:

Builds pass milestones in order (taking the build number as sorter field).
Older builds will not proceed (they are aborted) if a newer one already passed the milestone.
When a build passes a milestone, any older build that passed the previous milestone but not this one is aborted (see TIP 2 below).

主要的缺点是它不允许您推广较旧的构建,并且您最终仍然有很多工作“等待”。

关于Jenkins-workflow - 提升阶段(比 "input"更好的解决方案)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37644859/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com