我正在为 CI 使用Hudson 1.324 版并且有几个问题:
环境:
- 视窗服务器 2008
- 电源外壳 v1.0
- Hudson 1.324 作为服务运行
- 已安装 Hudson Powershell 插件
- Psake(又名“Powershell Make/Rake”可从 Github 获得)0.23(截至此初始帖子的所有当前/最新版本)
我有一个用于编译、运行 NUnit 测试的 Powershell (PS) 脚本,如果成功,则创建输出的 7z 文件。PS 脚本从命令行运行,在我的本地开发箱以及安装 Hudson 的 CI 服务器上运行。
1) 使用 Powershell 的执行策略。
我最初在服务器上运行了一个 PS 控制台Set-ExecutionPolicy Unrestricted
run ,它允许运行任何脚本。(是的,我意识到这里的安全问题,我正在尝试让某些东西起作用,而 Unrestricted 应该消除安全问题,以便我可以专注于其他问题。)
[这有效,并允许我昨天从 Hudson 启动 PS 构建脚本。然后我遇到了另一个问题,但我们将在第 2 项中进一步讨论。]
一旦 Hudson 可以启动 PS 脚本,它就会抱怨以下错误:
"C:\Windows\system32\WindowsPowerShell\v1.0\powershell "& 'OzSystems.Tools\psake\psake.ps1' '.\oz-build.ps1'" 术语 'OzSystems.Tools\psake\psake.ps1 ' 未被识别为 cmdlet、函数、可运行程序或脚本文件。验证术语并重试。在 line:1 char:2 + & <<<< 'OzSystems.Tools\psake\psake.ps1' ' .\oz-build.ps1'"
使用相同的命令行,我能够成功地从命令行手动执行 PS 脚本。然而,Hudson 无法让 PS 做同样的事情。在查看了其他 PS 文档后,我也尝试了这个:
"& 'OzSystems.Tools\psake\psake.ps1' '.\oz-build.ps1'"
并得到了类似的错误。Hudson 的 Powershell 插件似乎没有任何文档。我浏览了所有 Powershell 插件文件,但没有看到任何可配置的内容。我找不到哈德森的日志文件来获取更多信息。
谁能帮我解决这个问题?
2)我昨天和#1 摔跤了。在重新启动 Hudson 服务器/服务后,我进入这个 AM 并尝试再次挖掘,现在看来 ExecutionPolicy 已重置为 Restricted。我做了昨天的工作,打开了一个 PS 控制台,Set-ExecutionPolicy
然后Unrestricted
. 它显示Unrestricted
在 PS 控制台中,但 Hudson 表示它无权执行 PS 脚本。我重新打开了一个新的 PS 控制台并确认它ExecutionPolicy
仍然是Unrestriced
- 它是。但哈德森显然没有意识到这种变化。再次重新启动 Hudson 服务不会改变 Hudson 对策略的看法。
有谁知道这里发生了什么?
谢谢,德里克