Powershell失败了竹子任务,因为-ExecutionPolicy bypass -Command返回码是134而不是0

时间:2016-11-28 15:06:10

标签: windows macos powershell bamboo

我有一个将在 Bamboo 中运行的powershell脚本,它将更新Bamboo构建的状态。这在Github中调用,然后状态将更新调用脚本的任何构建。目前这在Windows机器上运行良好,但现在Mac机器上需要构建。

首先,脚本返回错误代码-1,因为我没有在Mac上安装PowerShell。现在我已经安装了PowerShell,我收到以下错误:

Failing task since return code of [powershell -ExecutionPolicy bypass -Command /bin/sh /var/folders/c6/T/MAC-CUSAPP-JOB1-14-ScriptBuildTask.ps1] was 134 while expected 0

代码本身适用于Windows,因为在Bamboo上使用Windows代理的所有其他构建都将成功构建任务。

& "${bamboo.build.working.directory}\scripts\publish-status.ps1" `
    -repoName MyRepo `
    -status pending `
    -revision ${bamboo.repository.revision.number} `
    -buildUrl ${bamboo.buildResultsUrl} `
    -description "Bamboo has started a build" `
    -context "bamboo-build"

无论如何都要正确地执行此操作,以便这适用于Mac。目前我已经检查过运行Powershell版本5.0.0+的Windows机器,而Mac是Powershell 6.0.0 Alpha,这就是它没有构建并给出错误代码134的原因吗?

当我甚至尝试这样做时:

if (2 -lt 3)
{
 Write-Host this is lower
}
else
{
 Write-Host this is higher
}

它会给出相同的响应,即使我写了Write-Host hello它会以134的返回码响应。

即使使用一个简单的powershell脚本,返回0仍然会给出返回代码为134的错误消息。此外,我检查了机器的ExecutionPolicy,并且对所有内容都不受限制。

问题不在于Mac上的powershell,因为它会成功运行一个PowerShell脚本,但竹子是如何使用Mac上的powershell脚本的。在使用Mac时,在Bamboo上使用powershell脚本时是否需要做一些不同的事情?

这是我如何运行Bamboo的图像,这是Windows上需要的脚本任务,但这不适用于Mac。 enter image description here更新

我添加了powershell作为可执行文件然后使用命令任务来调用powershell文件,但是这仍然无法工作,任何想法都是因为Bamboo不支持在mac上使用powershell作为powershell工作使用visual studio代码和终端在mac上。我这样做了两种方式:

-ExecutionPolicy Bypass -File /Users/dev/Documents/PowreshellScripts/hello.ps1

也是这样的:

-NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File /Users/dev/Documents/PowreshellScripts/hello.ps1

1 个答案:

答案 0 :(得分:1)

我有一个粗略的谷歌问题,看起来这实际上是PowerShell for Linux(和MacOS by proxy)的错误,至少根据PowerShell for Mac GitHub issue I managed to find for it。从Linux发行版(Ubuntu?)调用PowerShell脚本时,报告PowerShell问题的用户似乎与-ExecutionPolicy参数有着非常相似的问题,我认为由于UNIX体系结构,这将推断出MacOS。

从添加的评论的外观来看,这似乎已经在Alpha Build 18中得到修复。如果这仍然无法使用最新版本的PowerShell在MacOS上运行,我可能会建议您在PowerShell GitHub上报告它这个用户做了:))