首页 > 解决方案 > Jenkinsfile 的字符串插值和连接

问题描述

我正在尝试根据传递给自身的参数设置一个 Jenkinsfile 来获取调用其他作业的作业。

与其有多个when条件,我认为如果被调用的作业的名称理想情况下将一个公共前缀与传入的参数连接起来,它会更智能(并且可以管理未来的扩展),例如:

我很难将字符串插值与字符串连接混合来实现这一点:

    build job: 'CICD_"${params.SERVICE_NAME}"', wait : false

在Linux中,我们可以使用eval来实现这一点。我不确定 Jenkinsfile 语法中的等价物是什么。

完整代码如下:

pipeline {
    agent any

    parameters { string(name: 'SERVICE_NAME', defaultValue: '', description: 'Service being deployed.') }

    stages {
        stage('Build Trigger'){
            steps{
                echo "CICD_${params.SERVICE_NAME}"
                build job: 'CICD_"${params.SERVICE_NAME}"', wait : false
            }
        }
    }
}

标签: jenkinsjenkins-pipeline

解决方案


从一开始就将其更改为 Gstring,不需要单引号:

build job: "CICD_${params.SERVICE_NAME}", wait : false

推荐阅读