我有一个詹金斯(Jenkins)工作,它会调用Powershell文件。当我从自由样式项目中使用它时,它将在控制台输出中显示powershell执行。将其切换到管道作业后,我不再看到输出。
当前我的管道如下所示:
pipeline
{
stages
{
stage ('Deploy To Dev')
{
steps
{
powershell '"%WORKSPACE%\\SpearsLoad\\Scripts\\CIDeployToDev.Ps1"'
}
}
}
}
但是我没有记录Powershell步骤。
按照文档的说明,我尝试将阶段更改为:
pipeline
{
stages
{
stage ('Deploy To Dev')
{
steps
{
node('Deploy the SSIS load')
{
//Deploy the SSIS load
def msg = powershell(returnStdout: true, script: '"%WORKSPACE%\\SpearsLoad\\Scripts\\CIDeployToDev.Ps1"')
println msg
}
}
}
}
}
但这给出了:
在第123行的第6列中预期有一个步骤。def msg = powershell(returnStdout:true,脚本: '“%WORKSPACE%\ SpearsLoad \ Scripts \ CIDeployToDev.Ps1”')
我觉得我缺少一些非常基本的东西。我在做什么错了?
答案 0 :(得分:1)
您需要将流水线执行包装到script
部分,因为您正在尝试在declarative pipeline中使用脚本化语法:
script {
//Deploy the SSIS load
def msg = powershell(returnStdout: true, script: '"%WORKSPACE%\\SpearsLoad\\Scripts\\CIDeployToDev.Ps1"')
println msg
}
答案 1 :(得分:1)
对于任何来这里寻找答案的人,我需要指出,代码实际上存在3个独立的问题:
最后我去了:
script {
def msg = powershell(returnStdout: true, script: " & './SpearsLoad\\Scripts\\CIDeployToDev.Ps1'")
println msg
}
实际上有效!
答案 2 :(得分:1)
我用 写主机“我的消息” 在PowerShell中。这将显示在日志中。