将值从管道传递到shell脚本

时间:2018-04-12 02:15:08

标签: jenkins jenkins-plugins jenkins-pipeline jenkins-cli

我有一个管道,我有TARGETENVIRONMENT作为QA和PROD。在第一步我转换TARGETENVIRONMENT并将该值存储在变量Ajob和Bjob中。这些值Ajob和Bjob是工作名称,我需要获取内部版本号进一步处理。

def Ajob = "ProjectBuild_ABD_${TARGET_PLATFORM.toUpperCase()}_fe"
def Bjob = "ProjectBuild_ABD_${TARGET_PLATFORM.toUpperCase()}_be"

在下一步中,我将存储这些作业的构建号。当我

def fe = sh returnStdout: true, script: '/usr/sfw/bin/wget -qO- http://fiesccet01.emea.nsn-net.net:9095/job/${Ajob}/lastBuild/buildNumber'
def be = sh returnStdout: true, script: '/usr/sfw/bin/wget -qO- http://fiesccet01.emea.nsn-net.net:9095/job/${Bjob}/lastBuild/buildNumber'

脚本没有采用这些值$ {Ajob}和$ {Bjob}。如何在脚本中传递这些变量。

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

def fe = sh returnStdout: true, script: "/usr/sfw/bin/wget -qO- http://fiesccet01.emea.nsn-net.net:9095/job/${Ajob}/lastBuild/buildNumber"
def be = sh returnStdout: true, script: "/usr/sfw/bin/wget -qO- http://fiesccet01.emea.nsn-net.net:9095/job/${Bjob}/lastBuild/buildNumber"

不同之处在于字符串使用双引号,它应用string interpolation,即替换变量,与单引号相反,后者不是。