只有在条件合适时才能执行开发或发布过程中的某些步骤。例如,只能从生产分支发布到生产环境,或者只有获得特定用户的批准后才能部署到验收环境。
这是条件闪耀的地方,它们作为一个块在 Jenkins Pipelines 中实现。whenCopy
这篇文章是我系列文章的一部分,我在其中详细阐述了大规模运行 Jenkins 的最佳实践,这可能会使敏捷团队和 CI/CD 工作受益。
每当代码中涉及逻辑时,就必须格外小心,确保该代码的行为随着时间的推移是正确且一致的。测试对两者都有帮助。
现在,让我们看一下这篇博文的流程。
我们的管道
再次,我们使用以前文章中的管道,但这次我们必须稍微修改它才能使用该指令。 这就是我们现在所拥有的:whenCopy
这段 Pipeline 代码指示 Jenkins 检查此构建运行的分支是否是“主”分支。在找到合适的代理之前,Jenkins 也应该检查这一点,以避免不必要地使用代理并降低构建速度。
还请注意,这个条件可以用普通的 Groovy 写成:
when 指令允许管道根据给定的条件确定是否应执行该阶段。
这意味着我们可以根据某些条件选择执行 华人海外数据 哪些阶段:
健康)状况
它检查什么?
分支
当分支与给定模式匹配时
建筑标签
当构建正在构建标签时
变更日志
当 SCM 变更日志包含给定的正则表达式时
变更集
当 SCM 变更集包含与给定字符串/glob 匹配的文件时
变更请求
当构建是为了“变更请求”(GitHub/Bitbucket 上的Pull 请求或GitLab 上的Merge 请求)时
环境
当环境变量设置为指定值时
等于
当预期值等于实际值时
表达
当指定的 Groovy 表达式计算结果为 true 时
标签
当此构建正在构建与指定字符串/glob 匹配的标签时
触发者
当给定参数触发构建时
代理之前
在阶段中输入代理之前评估时间
输入之前
在输入指令之前评估何时
甚至还有一些逻辑运算符:
健康)状况
不是
当嵌套条件为假时
全部
当所有嵌套条件都为真时
任意
当至少一个嵌套条件为真时
利用这些布尔逻辑运算符,我们可以根据需要创建非常复杂的条件语句。然而,至少保持条件的可读性和简洁性可以被视为最佳做法。我建议最多使用一两个条件,以便所有用户都能轻松理解管道。
Jenkins:测试管道中各个阶段的条件逻辑
-
- Posts: 1281
- Joined: Mon Dec 23, 2024 8:20 am