JobDSL中的多行powershell命令

4c7*_*b41 3 powershell jenkins-job-dsl

我正在修补JobDSL,似乎无法一次性运行几个powershell命令.例:

job('whatever'){
 steps{
  powershell("""$var = $env:mybuildvar
   cmdlet2 $var""")
 }
}
Run Code Online (Sandbox Code Playgroud)

我该如何实现这一目标?谢谢!

似乎""""""适用于批处理,但不适用于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 $")
    }
}
Run Code Online (Sandbox Code Playgroud)

powershell('写输出测试;写输出测试')也不起作用

das*_*ker 9

方法名称powerShell不是powershell.请参阅https://jenkinsci.github.io/job-dsl-plugin/#path/job-steps-powerShell.

Groovy插入双引号字符串,请参阅字符串插值.如果要使用美元符号($),则需要使用单引号来避免插值'$var'.对多行字符串使用三重单引号.

job('whatever'){
  steps{
    powerShell('''$var = $env:mybuildvar
cmdlet2 $var''')
  }
}
Run Code Online (Sandbox Code Playgroud)