git push的远程消息让Appveyor构建失败

时间:2017-05-13 19:01:37

标签: git powershell azure appveyor

我尝试使用appveyor构建和部署网站。 创建的站点将被推送到Azure Web应用程序上的gitrepo,然后将部署文件。

然而问题是,azure服务器在推送哪个git返回stderr时提供反馈。

remote: Omitting next output lines...        
remote: Finished successfully.        
remote: Running post deployment command(s)...        
remote: Deployment successful.   

使用--quiet--porcelain没有帮助。

在PowerShell $ErrorActionPreference= 'silentlycontinue'中设置此项会抑制除一个错误之外的所有错误。而Build仍然失败。我无法抑制的最后一个错误是

Command executed with exception: remote: Deployment successful.        

该网站实际部署并且一切正常,但AppVeyor中的构建被标记为失败并且我收到了一封邮件。

这很烦人,很容易错过实际问题。

3 个答案:

答案 0 :(得分:0)

尝试将-q开关(安静)添加到git push命令,看看是否有帮助。

答案 1 :(得分:0)

我还没有发现如何压制遥控器的输出。 :(
但我可以配置服务器,使其不再发送将打印错误的消息。

在部署文件夹下的Azure上,编辑部署挂钩(d:\home\site\reposetory\.git\hooks)。

原始剧本是:

#!/bin/sh
read i
echo $i > pushinfo
"$KUDU_EXE" "$KUDU_APPPATH" "$KUDU_MSBUILD" "$KUDU_DEPLOYER"

然后我将std流重定向到null。新脚本如下所示:

#!/bin/sh
read i
echo $i > pushinfo
if ! "$KUDU_EXE" "$KUDU_APPPATH" "$KUDU_MSBUILD" "$KUDU_DEPLOYER" > /dev/null ; then
  echo 'Build on Azure Faild'
fi

我想当发生错误时它仍会将错误输出发送给客户端,但我不确定。所以我添加了一张支票,只是向客户回复说出错了。这将使AppVeyor构建失败。

答案 2 :(得分:0)

从原文中我了解到您是从PowerShell调用git push的。请尝试从CMD执行此操作,CMD对写入stdErr的输出不敏感。