作为我的Azure DevOps管道的第一步,我希望通过运行pylint来验证我的Python文件。这导致管道失败。 我的项目可以通过以下地址公开获得:
https://dev.azure.com/gcr84/dark-matter-attractor
,其中所有代码在存储库中都是可见的,并且可以使用管道运行历史记录。我想了解为什么pylinting会导致管道失败,并且我尝试添加以下命令:
"|| pylint-exit $?"
(请参阅https://pypi.org/project/pylint-exit/)
以及
failOnStderr: false
(请参阅https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/bash?view=azure-devops)。
下面是我的bash命令:
- bash: find -name '*.py' | xargs pylint || pylint-exit $?
displayName: 'Run pylint'
failOnStderr: false
答案 0 :(得分:1)
检查日志后,这似乎是与Azure DevOps无关的预期行为。
- fatal message issued
- error message issued
- refactor message issued
- convention message issued
- usage error
Fatal messages detected. Failing...
这引发了错误退出代码1,最终使bash任务失败。
配置failOnStderr=false
仅在将任何错误写入stderr时才能防止此任务失败。并非所有错误都被忽略。
如果您不想处理诸如python-pylint 'C0103:Invalid constant name之类的错误。解决方法应添加continueOnError: true
- bash: find -name '*.py' | xargs pylint || pylint-exit $?
displayName: 'Run pylint'
failOnStderr: false
continueOnError: true
这将迫使您的构建继续运行。此外,您还可以尝试使用一些第三方扩展来运行pylink,例如-PyLint Checker