带有pylint的Jenkins会导致构建失败

Gob*_*ins 9 python pylint jenkins

我添加了一个构建步骤来执行Python脚本.
在这个脚本中,使用lint.Run(.. args)调用pylint来检查代码.
该脚本可以工作,但最终,构建失败并显示唯一的错误消息:

Build step 'Execute Python script' marked build as failure

有人知道为什么会这样吗?

fab*_*ioM 19

你也可以简单地把一个

pylint || 退出0

在shell cmdline中.Pylint插件无论如何都会通过检查pyllint的结果来使构建失败.

  • 这样做的问题是,如果 pylint 无法运行,那么您将错过该错误,因为它仍然是 0 退出代码。 (2认同)

dme*_*ter 13

即使只发现一个小的警告问题,Pylint仍然有令人不愉快的行为来返回非零退出代码.只有当一切都很好时,才会返回0(参见手册页).

由于通常非零代码表示错误,因此Jenkins无法构建.

我看到两种方法可以解决这个问题:

  • 在pylint周围使用一个总是返回0的小脚本.然后jenkins不会因为pylint而失败.我使用一个小的python脚本调用pylint与os.system()和sys.exit(0)之后.您可以将其视为覆盖pylint的错误代码.
  • 补丁pylint.例如,在我的Linux系统上,sys.exit()调用位于文件/usr/lib/pymodules/python2.6/pylint/lint.py中


小智 11

在 Pylint 1.9.3 中,有一个--exit-zero标志。

https://github.com/PyCQA/pylint/blob/1.9/ChangeLog#L47


Céd*_*ien 3

看来您的 pylint 执行退出时状态为非零(缺少脚本、错误选项...),也许您退出脚本时引发了异常或sys.exit(something_else_than_zero)