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

remote messages for git push let Appveyor build fail

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

问题是,Azure 服务器在将 git returns 推送到 stderr 时给出反馈。

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

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

在 PowerShell $ErrorActionPreference= 'silentlycontinue' 中设置此项可以抑制除一个错误外的所有错误。并且构建仍然失败。我无法抑制的最后一个错误是

Command executed with exception: remote: Deployment successful.        

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

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

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

我还没有找到如何抑制遥控器的输出。 :(

但我可以配置服务器,使其不再发送打印错误的消息。

在 Azure 上的部署文件夹下编辑部署挂钩(d:\home\site\repository\.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 Failed'
fi

我想当发生错误时它仍然会向客户端发送错误输出,但我不确定。所以我添加了一个检查,它只是向客户回显出了点问题。这将导致 AppVeyor 构建失败。

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