web-dev-qa-db-ja.com

警告プラグインとパイプラインでJenkinsでPyLintを使用する

Violationsプラグインは廃止されているため、Jenkinsでは Warnings Plugin および PipleinePyLint を使用します。

ドキュメントや完全な例はありません。

一部の情報 があります:

timeout(time: 5, unit: 'MINUTES') {
  sh 'npm run lint:ci'
  step([$class: 'WarningsPublisher',
    parserConfigurations: [[
      parserName: 'JSLint',
      pattern: 'pmd.xml'
    ]],
    unstableTotalAll: '0',
    usePreviousBuildAsReference: true
  ])
}

および 回避策

pylint || exit 0

しかし、それだけでは十分ではありません。

18
Paweł Prażak

私はそれを機能させることができました:

sh 'pylint --disable=W1202 --output-format=parseable --reports=no module > pylint.log || echo "pylint exited with $?")'
sh 'cat render/pylint.log'

step([
        $class                     : 'WarningsPublisher',
        parserConfigurations       : [[
                                              parserName: 'PYLint',
                                              pattern   : 'pylint.log'
                                      ]],
        unstableTotalAll           : '0',
        usePreviousBuildAsReference: true
])

構成方法がまだわかりません。

ソースコード および tests から読み取れたものから、これらはコンストラクターパラメーターであるため、可能なパラメーターである可能性があります。

そして、parserConfigurations ---(javadoc は次のようにのみ言います:

  • pattern-解析するファイルのパターン
  • parserName-使用するパーサーの名前

ここで、 ここにあるパーサーの継ぎ目のリスト

詳細な情報や修正が必要な場合は、コメントを編集または削除してください。

26
Paweł Prażak

|| exit 0または|| echo "failed"(これは問題ありません)の代わりにpylint --exit-zeroを使用することに注意してください。

--exit-zero         Always return a 0 (non-error) status code, even if
                    lint errors are found. This is primarily useful in
                    continuous integration scripts.
5
javabrett