我正在尝试在我们的 bamboo 系统中设置一个新的 CI 构建节点。我有一个 bamboo 代理作为 Windows 服务在此构建节点中运行,我在 windows-server 2012 上运行了类似的设置,但现在我想在 Windows 10 中创建相同的设置。
许多 Windows 构建作业使用 powershell 作为构建过程的一部分来将工件发布到其他存储库,它们在 bamboo 作业配置中被设置为脚本任务,就像我说的,它在 WS2012 构建机器中运行良好。
在新的 Windows 10 节点中,我收到一条错误消息,指出脚本返回的是 RC -1 而不是 0。我尝试在脚本上运行 echo "hello" 以查看它是否与新操作系统兼容,但仍然收到相同的错误,这让我认为这是一个权限问题。我检查了执行策略,它设置为 RemoteSigned,我检查了服务是否使用具有管理员权限的帐户运行。我仍然遇到同样的问题。唯一奇怪的是 bamboo 如何调用它使用的脚本
powershell -ExecutionPolicy bypass -Command scriptName.ps1
而不是使用 -File 选项从命令行运行,但这在另一个节点中有效,所以我不确定,除了主机操作系统之外的主要区别是 powershell 版本,Windows 10 使用 powershell 5.1 旧节点使用 5.0 所以,我的问题是:我还可以检查什么?有什么想法吗?
答案1
因此,问题在于 env 在用户路径变量中缺少 powershell 的路径。添加它可以解决问题。我错误地认为,由于 powershell 随操作系统一起提供,因此该路径会自动可用。
答案2
按照Atlassian 支持页面,这与 Java Service Wrapper 中的一个错误有关。由于我的系统中没有用户 PATH 变量,我尝试了解决方法 2。我必须从代理机器上卸载 bamboo 代理服务和 Java 64 版本才能应用解决方法 2。