Visual Studio Online Build将git输出视为错误。

3
我的Visual Studio Online构建尝试通过Kudu部署我的Azure网站。脚本运行良好,部署成功,但由于某种原因,VSO将git输出视为错误,并宣布整个构建失败。请查看下面的截屏。
一些细节: 1. 这是一个“新的脚本”构建,不是XAML定义的构建。 2. 构建定义只有一个步骤,执行一个PowerShell脚本,运行F# FAKE(不确定这是否相关)。 3. 当我在本地机器上运行相同的脚本时,我没有看到任何“奇怪”的输出,包括每行末尾的[K。 4. 在本地运行后,$ LastExitCode为零。 5. 我非常希望保持构建为一步,这样我可以继续利用FAKE的强大功能。

enter image description here


奇怪。你尝试从脚本中打印 $LastExitCode 来查看在 VSO 构建下运行时是否为 0 吗? - David Ebbo
在哪个脚本中?你是指在执行FAKE后的PowerShell脚本中吗? - Fyodor Soikin
刚刚尝试了一下。在我的PowerShell脚本的最后,$LastExitCode是零。看起来VSO纯粹基于文本输出做出判断。 - Fyodor Soikin
真的不确定 VSO 在这里做了什么。可能是一些输出被发送到 stderr 而不是 stdout,他们将其视为错误条件,而不管退出代码如何。虽然这将是非常可疑的行为,但这只是一个猜测。我在 Kudu 部分工作,对于调用它的 VSO 部分发生的情况并不是很熟悉。 - David Ebbo
只有在运行git pull和push命令时才会出现这种情况吗? - Eddie Chen - MSFT
1个回答

3

Git将其内容输出到错误流,Visual Studio Team Services将其解释为错误。

您需要在脚本中重定向Git的输出,如下所示:

git pull 2>&1 | Write-Host

这样才能使它正常工作。


1
抱歉耽搁了这么久,被其他事情分心了。是的,这就是答案,只需将stderr重定向到stdout即可解决问题。 - Fyodor Soikin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接