如何解决使用输出重定向到文件时,Gitlab CI 作业返回退出状态 1
我们在 Gitlab CI 中使用 shell runner。在我们的 .gitlab-ci.yml
中有一个构建我们项目的作业。我可以在 Gitlab Web 视图中看到构建输出,但我想将构建存储到日志文件并将其作为工件上传。构建项目的行如下所示:
emBuild -config "Release" -project "whc_uc1" whc_uc1/whc_uc1.emProject -verbose 2>&1 | Tee-Object -FilePath whc_uc1/build.log | Write-Host
问题是生成的日志文件包含所有 stdout
和 stderr
(如果有),但构建作业返回 ERROR: Job failed: exit status 1
。这发生在有错误和没有错误的构建中。如果我删除 2>&1 | Tee-Object -FilePath whc_uc1/build.log | Write-Host
行,则一切正常。
另一个有效但未在日志文件中输出 stderr
的解决方案是:
|& tee whc_uc1/build.log
此解决方案创建了日志文件并且构建成功,但不幸的是,日志文件没有 stderr
。
解决方法
我通过安装新的 PowerShell
版本 7 解决了这个问题,现在以下 2>&1 | Tee-Object -FilePath
现在可以正常工作了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。