【问题标题】:remote messages for git push let Appveyor build failgit push 的远程消息让 Appveyor 构建失败
【发布时间】:2017-05-13 19:01:36
【问题描述】:

我尝试使用 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' 中设置此项会抑制除一个错误之外的所有错误。并且构建仍然失败。我无法抑制的最后一个错误是

Command executed with exception: remote: Deployment successful.        

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

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

【问题讨论】:

    标签: git powershell azure appveyor


    【解决方案1】:

    尝试将-q switch (quiet) 添加到git push 命令,看看是否有帮助。

    【讨论】:

    • 使用--quiet 没有帮助。完整的命令是git push -q --porcelain --force origin master
    • 好的,在 AppVeyor 端你怎么称呼它?能否请您删除一个构建(或 appveyor.yml)的链接?
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      在 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 构建失败。

      【讨论】:

        猜你喜欢
        • 2021-09-09
        • 1970-01-01
        • 1970-01-01
        • 2021-08-02
        • 2014-07-20
        • 2012-07-18
        • 1970-01-01
        • 1970-01-01
        • 2016-03-27
        相关资源
        最近更新 更多