jenkins - 如果环境变量包含特定子字符串,则执行一个阶段

标签 jenkins jenkins-pipeline jenkins-plugins

我有一个 Jenkins 声明性管道,我有兴趣仅当特定环境变量包含特定子字符串(不完全等于它,只是包含它)时才能够执行一个阶段。 有谁知道如何实现它(如果可能的话,也许使用when条件)。

提前致谢, 阿隆

最佳答案

正如您所提到的,在声明性管道中您可以使用 when directive建立执行该阶段的条件。
triggeredBybranchtag 等内置条件选项中,有一个通用表达式选项,它允许您运行任何groovy代码并根据您的需要计算相关的 bool 值。
因此,对于您的情况,例如您可以使用 groovy contains 方法来实现您想要的,例如:

pipeline {
    agent any
    stages {
        stage('Conditional Stage') {
            when {
                expression { return env.MyParamter.contains('MySubstring') }
            }
            steps {
                echo "Running the conditional stage"
            }
        }
    }
}

关于jenkins - 如果环境变量包含特定子字符串,则执行一个阶段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68611679/

相关文章:

unit-testing - 在 Jenkins 中使用 xUnit 插件 boost 单元测试不起作用

authentication - Jenkins "Invalid Login Information"

jenkins - FxCop 必须安装错误

jenkins - 使用变量从 Jenkins Pipeline 构建作业

Jenkins 从 docker 容器发布 HTML

java - Jenkins/Hudson 没有任何测试报告包含任何结果

jenkins - 在 Jenkins 的 email-ext 中快速测试 Jelly 模板

Ubuntu-process 不是从 jenkins 启动的

jenkins - 如何在 jenkinsfile 中分别获取存储在 Jenkins 凭据中的用户名密码

停止工作时的 Jenkins 拆卸