continuous-integration - 使用输出重定向到文件时,Gitlab CI 作业返回退出状态 1
问题描述
我们正在为我们的 Gitlab CI 使用 shell 运行程序。在我们.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
工作没有任何问题。
推荐阅读
- tensorflow - 自定义训练步骤时处理 tf.data 对象
- sql-server - Pandas dataframe with less number of columns to SQL Server Table
- c# - MxNet Sharp with NVidia RTX 3060
- database - Ruby on Rails Rspec 使用了错误的环境和数据库
- node.js - Google 语音转文本 API 错误计费状态已关闭,计费设置正确且处于活动状态
- java - 可以在char中设置多种颜色
- delphi - 如何将换行符转换为 PChar 字符串
- java - 从 main 调用函数参数
- visual-studio-code - VS Code 终端未启动
- python - json数组拆分为多个数组