Daw*_*žan 5 build stderr azure-devops
我有一个VSTS(Azure DevOps)构建,其中包含PowerShell或命令行任务。此任务正在运行一些程序:program.exe。当program.exe返回非零退出代码时,生成将按预期失败。program.exe如果发生错误,还会将详细的错误消息打印到stderr流中。
问题在于stderr流的内容没有传递给构建。该任务始终返回以下错误消息,该错误消息在生成摘要选项卡上也显示为生成失败消息:
流程已完成,退出代码为1。
这没用。用户必须查找失败的任务,打开其输出并在此处搜索错误消息。那不是很方便。
如何轻松地将的内容传递stderr给构建?
我是否必须手动捕获stderr然后使用PowerShell将其发送到构建,或者是否有设置可以更改构建行为以使其按预期工作?
我刚刚2>&1 | Write-Host在命令中添加了“”,以便 stderr 流将路由到 Write-Host 流。参考此线程:VSTS 构建失败,并显示“进程已完成,退出代码为 0,并且已将 3 个错误写入错误流。” 即使我将 PowerShell 脚本设置为忽略错误
您还可以尝试取消选中Fail on Standard ErrorPowerShell 脚本配置中的 并编写 lastexitcode 来传递任务:
\n\n\n标准错误失败
\n\n如果这是 true,则如果将任何错误写入\n 错误管道,或者将任何数据写入\n 标准错误流,则此任务将失败。否则,任务将仅依赖 $LASTEXITCODE 和\n 退出代码来确定失败。
\n
然后,您可以使用 PowerShell 或 VSTS 任务命令输出错误或警告。
\n\nWrite-Warning \xe2\x80\x9cwarning\xe2\x80\x9d\nWrite-Error \xe2\x80\x9cerror\xe2\x80\x9d\nWrite-Host " ##vso[task.logissue type=warning;]this is the waring"\nWrite-Host " ##vso[task.logissue type=error;sourcepath=consoleapp/main.cs;linenumber=1;columnnumber=1;code=100;]this is an error "\nRun Code Online (Sandbox Code Playgroud)\n\n更多关于VSTS任务命令的信息,可以参考:日志记录命令
\n| 归档时间: |
|
| 查看次数: |
625 次 |
| 最近记录: |