我正在修补JobDSL,似乎无法一次性找到运行多个powershell命令的方法。例如:
job('whatever'){
steps{
powershell("""$var = $env:mybuildvar
cmdlet2 $var""")
}
}
我如何实现这一目标?谢谢!
似乎“”“”“”适用于批处理,但不适用于powershell。 此外,如果我尝试使用带有转义的$ var或没有使用
的JobDSL失败错误:(sandbox_CI_Dev,第15行)没有方法签名: javaposse.jobdsl.dsl.helpers.step.StepContext.powershell()是 适用于参数类型:(java.lang.String)值:[$ var = $ ENV:mybuildvar]
错误可在jobdsl playground(http://job-dsl.herokuapp.com/)上重现,使用以下代码(或类似上面的代码):
job('whatever') {
steps{
powershell("write-output $")
}
}
还有powershell('写输出测试;写输出测试')不起作用
答案 0 :(得分:7)
方法名称为powerShell
,而非powershell
。请参阅https://jenkinsci.github.io/job-dsl-plugin/#path/job-steps-powerShell。
Groovy插入双引号字符串,请参阅String interpolation。如果要使用美元符号($
),则需要使用单引号来避免插值。 '$var'
。对多行字符串使用三重单引号。
job('whatever'){
steps{
powerShell('''$var = $env:mybuildvar
cmdlet2 $var''')
}
}