从 Jenkins PowerShell 构建步骤中调用的 PowerShell 脚本无限期挂起



我有一个 Jenkins (1.493) 项目,它使用 Jenkins PowerShell 构建步骤来执行 PowerShell 脚本。在该脚本中,我想调用存储在文件中的另一个脚本。我现在将其简化为以下内容:

Jenkins PowerShell 构建步骤中的脚本:
& "\stemmer.localsidevelopmentcvdevdevbasejenkinsPowerShellTest.ps1"

测试内容.ps1:
write-host 'Hello world!'

每当此 Jenkins 项目执行时,PowerShell 构建步骤都会无限期挂起。

到目前为止,我已经尝试/验证了:

  • 在调用Test.ps1之前添加一些输出,向我显示 Jenkins PowerShell 脚本正在正常执行,直到调用Test.ps1
  • 该文件Test.ps1存在,并且可以从执行脚本的构建从属服务器访问。如果我更改文件名,我会收到来自 PowerShell 的预期错误消息...
  • 第一个脚本中将" for "交换不会改变任何内容。此外,使用点源而不是&也无济于事。
  • 文件Test.ps1可以使用与 Jenkins PowerShell 脚本中使用的相同命令行从 powershell 本身正确执行。
  • PowerShell 的执行策略已设置为在我的开发主机和 Jenkins 构建从属服务器上unrestricted
  • 我尝试将PowerShell构建步骤替换为Windows批处理命令构建步骤,如下所示:
    powershell.exe -InputFormat None -File "\stemmer.localsidevelopmentcvdevdevbasejenkinsPowerShellTest.ps1"
    并使用powershell.exe的参数进行了一些尝试,但结果是 - 在那些语法和其他方面正确的情况下,据我所知 - 总是相同的。

我只发现了很少的听起来相似的问题,但其他地方提到的方法都没有帮助我解决这个问题。我非常困惑,想知道以前是否有人遇到过这个问题(甚至可能遇到过像我想到的那种场景)。

非常感谢您的任何输入!

Volker

您是否尝试过将执行策略设置为绕过?

在本地复制脚本文件,然后从JenkinsPowerShell插件中调用它 - 这样它就可以按预期工作。

最新更新