Jenkins Pipeline,PowerShell脚本挂起

时间:2017-11-28 08:43:37

标签: powershell jenkins-pipeline

我想使用powershell命令从Jenkins管道运行Powershell文件。应该很容易,对吧?

node()
{
    stage ('Hello World') {
        powershell returnStatus: true, script: 'C:\\HelloWorld.ps1'
    }   
}

C:\ HelloWorld.ps1是一个单行:

Write-Host "Hello World"

但是运行该作业会导致进程挂起。这是控制台输出:

Started by user Administrator
[Pipeline] node
Running on master in C:\Jenkins\workspace\HelloWorld
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Hello World)
[Pipeline] powershell
[HelloWorld] Running PowerShell script

然后它就会挂起,直到我取消这份工作。

怎么办?

4 个答案:

答案 0 :(得分:4)

我有同样的问题并设法通过将DurableTask插件从1.17降级到1.15来解决它。它似乎是JENKINS-46496 bug的一部分。旧的插件版本有1.15

您可以在管理插件 - >高级标签 - >上传插件按钮中将插件更新为所需版本。

答案 1 :(得分:1)

我遇到了同样的问题,问题是作业名称中有空格。

答案 2 :(得分:1)

此问题应在下一版本中修复:https://github.com/jenkinsci/durable-task-plugin/pull/51

答案 3 :(得分:0)

我在大约70%的情况下遇到同样的问题。我有一个管道脚本,开始在不同的代理上分散大约20个并行作业。其中每个尝试最初运行Powershell脚本。大约30%的作业成功运行脚本,其余的就像对Ola一样。

构建代理的配置方式完全相同(VM群集中的克隆)。使用Powershell v4。经过多次尝试,单个构建代理有时会成功运行Powershell,有时候不会。

我已经运行了这个管道5-6周,这只是上周这种行为。幸运的是,剧本尚未投入生产:-)

我没有时间进行全面调查。是不是有些管道插件已经更新并引入了这个bug?