Jenkinsfile的字符串插值和连接

时间:2018-07-17 08:10:16

标签: jenkins jenkins-pipeline

我正在尝试根据传递给自身的参数设置一个Jenkinsfile,该文件可以使一个作业调用其他作业。

我认为,如果没有被多个when的条件,那么如果被调用的作业的名称理想地将一个通用前缀与要传递的参数连接起来,那将更聪明(并且可以为将来的扩展管理)例如:

  • CICD_api-gateway
  • CICD_front-end
  • CICD_customer-service

我很难将字符串插值与字符串连接混合在一起以实现此目的:

    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
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

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

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