作为我的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
检查日志后,这似乎是与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