我尝试使用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中的构建被标记为失败并且我收到了一封邮件。
这很烦人,很容易错过实际问题。
答案 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的输出不敏感。