JobDSL中的多行powershell命令

时间:2016-08-09 09:42:48

标签: powershell jenkins-job-dsl

我正在修补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('写输出测试;写输出测试')不起作用

1 个答案:

答案 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''')
  }
}