groovy Jenkins管道脚本

eufgjt7s  于 2022-11-01  发布在  Jenkins
关注(0)|答案(1)|浏览(253)
pipeline {
   agent none
   stages {
       stage ('INSTALL_IMAGE') {
           steps {
               script {
                   def command = "env.job_file --testbed-file env.testbed_file --image_file env.image_file --mail_to env.mail_to"
                   build job: 'PYATS_JOB_EXECUTOR', parameters: 
                    [
                        string(name: 'branch_name', value: env.branch_name),
                        string(name: 'pyats_job_args', value: ${command}),
                    ]
                }
            }  
        }
    }
}

获取此错误:job_file
job_filetestbed_fileimage_filemail_tobranch_name都是在Jenkins管道项目中定义的字符串参数。

r1wp621o

r1wp621o1#

您收到此错误是因为以下行:value: ${command} .
${}语法用于groovy String Interpolation,顾名思义,只能在双引号(单行或多行)字符串中使用。
应采用以下方法:

string(name: 'pyats_job_args', value: "${command}"),

但是,由于您的值已经是一个参数,因此根本不需要字符串插值,您只需直接使用您的command参数

string(name: 'pyats_job_args', value: command),

这是一种更简单、可读性更强的方法。

相关问题