ci: update jenkins to check codestyle

This commit is contained in:
Frédéric Péters 2022-04-29 08:13:28 +02:00
parent 9014f2c5bf
commit 14e55eeb1e
4 changed files with 153 additions and 1 deletions

15
Jenkinsfile vendored
View File

@ -1,8 +1,21 @@
@Library('eo-jenkins-lib@master') import eo.Utils
@Library('eo-jenkins-lib@main') import eo.Utils
pipeline {
agent any
stages {
stage('Unit Tests') {
steps {
sh 'tox -rv'
}
post {
always {
script {
utils = new Utils()
utils.publish_pylint('pylint.out')
}
}
}
}
stage('Packaging') {
steps {
script {

122
pylint.rc Normal file
View File

@ -0,0 +1,122 @@
[MASTER]
profile=no
persistent=yes
ignore=vendor,Bouncers,ezt.py
cache-size=500
[MESSAGES CONTROL]
disable=
abstract-method,
arguments-differ,
attribute-defined-outside-init,
bad-super-call,
consider-using-f-string,
consider-using-set-comprehension,
consider-using-ternary,
cyclic-import,
duplicate-code,
exec-used,
fixme,
import-outside-toplevel,
inconsistent-return-statements,
invalid-name,
invalid-str-returned,
keyword-arg-before-vararg,
missing-class-docstring,
missing-function-docstring,
missing-module-docstring,
no-else-return,
no-member,
no-self-use,
not-an-iterable,
protected-access,
raise-missing-from,
redefined-argument-from-local,
redefined-builtin,
redefined-outer-name,
superfluous-parens,
too-many-ancestors,
too-many-branches,
too-many-instance-attributes,
too-many-lines,
too-many-locals,
too-many-nested-blocks,
too-many-return-statements,
too-many-statements,
undefined-loop-variable,
unspecified-encoding,
unsubscriptable-object,
unsupported-assignment-operation,
unsupported-membership-test,
unused-argument,
use-a-generator,
use-implicit-booleaness-not-comparison
[REPORTS]
output-format=parseable
include-ids=yes
[BASIC]
no-docstring-rgx=__.*__|_.*
class-rgx=[A-Z_][a-zA-Z0-9_]+$
function-rgx=[a-zA_][a-zA-Z0-9_]{2,70}$
method-rgx=[a-z_][a-zA-Z0-9_]{2,70}$
const-rgx=(([A-Z_][A-Z0-9_]*)|([a-z_][a-z0-9_]*)|(__.*__)|register|urlpatterns)$
good-names=_,i,j,k,e,x,Run,,setUp,tearDown,r,p,s,v,fd
[TYPECHECK]
# Tells whether missing members accessed in mixin class should be ignored. A
# mixin class is detected if its name ends with "mixin" (case insensitive).
ignore-mixin-members=yes
# List of classes names for which member attributes should not be checked
# (useful for classes with attributes dynamically set).
ignored-classes=SQLObject,WSGIRequest,Publisher,NullSessionManager
# When zope mode is activated, add a predefined set of Zope acquired attributes
# to generated-members.
zope=no
# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E0201 when accessed.
generated-members=objects,DoesNotExist,id,pk,_meta,base_fields,context
# List of method names used to declare (i.e. assign) instance attributes
defining-attr-methods=__init__,__new__,setUp
[VARIABLES]
init-import=no
dummy-variables-rgx=_|dummy
additional-builtins=_,N_,ngettext
good-names=_,i,j,k,e,x,Run,,setUp,tearDown,r,p,s,v,fd
[SIMILARITIES]
min-similarity-lines=6
ignore-comments=yes
ignore-docstrings=yes
[MISCELLANEOUS]
notes=FIXME,XXX,TODO
[FORMAT]
max-line-length=160
max-module-lines=2000
indent-string=' '
[DESIGN]
max-args=10
max-locals=15
max-returns=6
max-branchs=12
max-statements=50
max-parents=7
max-attributes=7
min-public-methods=0
max-public-methods=50

5
pylint.sh Executable file
View File

@ -0,0 +1,5 @@
#! /bin/bash
set -e -x
env
pylint -f parseable --rcfile pylint.rc "$@" | tee pylint.out || /bin/true

12
tox.ini Normal file
View File

@ -0,0 +1,12 @@
[tox]
envlist = codestyle-pylint
toxworkdir = {env:TMPDIR:/tmp}/tox-{env:USER}/scrutiny/{env:BRANCH_NAME:}
[testenv]
deps =
codestyle: pre-commit
pylint: pylint
pylint: pylint-django
commands =
codestyle: pre-commit run --all-files --show-diff-on-failure
pylint: ./pylint.sh scrutiny/