记录错误但管道通过时管道失败
Fail pipeline when error is logged but pipeline pass
我正在寻找一种在记录任何错误时使构建管道失败的方法。我发现很多情况(npm、单元测试和其他)发生 exception/errors/problems 导致管道记录并显示错误但构建管道结果成功(没有人觉得需要检查细节,因为管道通过并显示绿色成功这就是问题所在。
三个任务('script'、'Bash'、'Powershell')有选项 "failOnStderr"(设置为 true 使得在向 stderr 写入任何内容时步骤失败)这似乎是这个问题的确切解决方案,但其他任务(如 'vstest'、'cake build' 和其他)没有。
'task' 的 Yaml 方案不提供在记录错误时使任务失败的选项。
感谢您的帮助:]
对于这个问题,有一些情况可能会导致此问题。我在这里整理了几种情况和解决方法:
Npm :这意味着您的脚本 "swallows" 退出代码并正常退出。您需要在脚本中添加一个检查,以捕获 npm run lint
的退出代码并以相同的退出代码退出,例如:
- script: |
npm install
npm run lint # Mapped to `eslint src` in package.json
if [ $? -ne 0 ]; then
exit 1
fi
npm run slint # `stylelint src` in package.json
npm run build
详情请参考此
测试:您可以尝试在任务输入中添加failTaskOnFailedTests: true
,例如:
- task: PublishTestResults@2
inputs:
testRunner: VSTest
testResultsFiles: '**/*.trx'
failTaskOnFailedTests: true
详情请参考此case
任务本身的版本缺陷也可能导致这种现象。在此 case 中,原始路径中存在循环符号链接或文件过多,导致查看文件的助手失败。该错误是帮助者报告的成功。这个问题通过使用更新版本的任务库更新 Maven task
而结束。
此外,如果您使用自托管代理运行构建管道,旧版本的代理也可能导致这种情况。解决方案是将代理更新到最新版本。详情可参考this
希望对您有所帮助。
我正在寻找一种在记录任何错误时使构建管道失败的方法。我发现很多情况(npm、单元测试和其他)发生 exception/errors/problems 导致管道记录并显示错误但构建管道结果成功(没有人觉得需要检查细节,因为管道通过并显示绿色成功这就是问题所在。
三个任务('script'、'Bash'、'Powershell')有选项 "failOnStderr"(设置为 true 使得在向 stderr 写入任何内容时步骤失败)这似乎是这个问题的确切解决方案,但其他任务(如 'vstest'、'cake build' 和其他)没有。
'task' 的 Yaml 方案不提供在记录错误时使任务失败的选项。
感谢您的帮助:]
对于这个问题,有一些情况可能会导致此问题。我在这里整理了几种情况和解决方法:
Npm :这意味着您的脚本 "swallows" 退出代码并正常退出。您需要在脚本中添加一个检查,以捕获 npm run lint
的退出代码并以相同的退出代码退出,例如:
- script: |
npm install
npm run lint # Mapped to `eslint src` in package.json
if [ $? -ne 0 ]; then
exit 1
fi
npm run slint # `stylelint src` in package.json
npm run build
详情请参考此
测试:您可以尝试在任务输入中添加failTaskOnFailedTests: true
,例如:
- task: PublishTestResults@2
inputs:
testRunner: VSTest
testResultsFiles: '**/*.trx'
failTaskOnFailedTests: true
详情请参考此case
任务本身的版本缺陷也可能导致这种现象。在此 case 中,原始路径中存在循环符号链接或文件过多,导致查看文件的助手失败。该错误是帮助者报告的成功。这个问题通过使用更新版本的任务库更新 Maven task
而结束。
此外,如果您使用自托管代理运行构建管道,旧版本的代理也可能导致这种情况。解决方案是将代理更新到最新版本。详情可参考this
希望对您有所帮助。