我正在使用Hudson版本1.324进行CI并遇到一些问题:
环境:
我有一个Powershell(PS)脚本,用于编译,运行NUnit测试,如果成功,则创建输出的7z文件.PS脚本在我的本地开发盒以及安装了Hudson的CI服务器上从命令行运行.
1)Powershell的执行政策.
我最初在服务器上运行了一个PS控制台,运行Set-ExecutionPolicy Unrestricted,它允许运行任何脚本.(是的,我在这里意识到了安全问题,我正在努力使某些工作得到解决,而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,功能,可操作程序或脚本文件.验证该术语并重试.在行:1 char:2 +&<<<<'OzSystems.Tools\psake\psake.ps1'' \盎司,build.ps1' "
使用相同的命令行,我可以手动从命令行成功执行PS脚本.但是Hudson无法让PS做同样的事情.在查看其他PS文档后,我也尝试了这个:
"& 'OzSystems.Tools\psake\psake.ps1' '.\oz-build.ps1'"
Run Code Online (Sandbox Code Playgroud)
并得到了类似的错误.似乎没有任何关于Hudson的Powershell插件的文档.我已经浏览了所有的Powershell插件文件,看不到任何可配置的内容.我找不到Hudson的日志文件来获取更多信息.
可以有人帮我过去吗?
2)我昨天和#1一起摔跤.在重新启动Hudson服务器/服务之后,我进入了上午并尝试再次挖掘,现在看来ExecutionPolicy已重置为Restricted.我昨天做了什么工作,开了一个PS控制台和Set-ExecutionPolicy到Unrestricted.它显示Unrestricted在PS控制台中,但Hudson说它没有执行PS脚本的权限.我重新打开了一个新的PS控制台并确认它ExecutionPolicy仍然是Unrestriced- 它是.但是哈德森显然不知道这种变化.再次重新启动Hudson服务不会改变Hudson对策略的看法.
有谁知道这里发生了什么?
谢谢,德里克