From d16ac68fadf299f53710d20131f6f4d67926723d Mon Sep 17 00:00:00 2001 From: "shikhar.s" Date: Sat, 6 Jul 2019 18:11:35 +0530 Subject: [PATCH] add of pylint check --- Jenkinsfile | 24 +++++++- Jenkinsfile2 | 166 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 189 insertions(+), 1 deletion(-) create mode 100644 Jenkinsfile2 diff --git a/Jenkinsfile b/Jenkinsfile index 8690b6ad..91e4e7b6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -8,7 +8,7 @@ pipeline { environment { projectName = 'BitMessage' emailTo = 'kuldeep.m@cisinlabs.com' - emailFrom = 'kuldeep.m@cisinlabs.com' + emailFrom = 'cis.dev393@gmail.com' VIRTUAL_ENV = "${env.WORKSPACE}/venv" } @@ -85,6 +85,28 @@ pipeline { } } + stage('Pylint Checker') { + steps { + sh ''' + echo ${SHELL} + [ -d venv ] && rm -rf venv + #virtualenv --python=python2.7 venv + virtualenv venv + #. venv/bin/activate + export PATH=${VIRTUAL_ENV}/bin:${PATH} + + pip install pylint + + cd repo + ### Need this because some strange control sequences when using default TERM=xterm + export TERM="linux" + + ## || exit 0 because pylint only exits with 0 if everything is correct + pylint --rcfile=pylint.cfg $(find . -maxdepth 1 -name "*.py" -print) Pybitmessage/ > pylint.log || exit 0 + ''' + } + } + stage('Test Run') { steps { diff --git a/Jenkinsfile2 b/Jenkinsfile2 new file mode 100644 index 00000000..d99b3f09 --- /dev/null +++ b/Jenkinsfile2 @@ -0,0 +1,166 @@ +#!/usr/bin/env groovy + +/** + * Jenkinsfile + */ +pipeline { + agent any + options { + buildDiscarder( + // Only keep the 10 most recent builds + logRotator(numToKeepStr:'10')) + } + environment { + projectName = 'BitMessage' + emailTo = 'kuldeep.m@cisinlabs.com' + emailFrom = 'kuldeep.m@cisinlabs.com' + VIRTUAL_ENV = "${env.WORKSPACE}/venv" + } + + stages { + + /* + stage ('Checkout') { + steps { + checkout scm + } + } + */ + + stage ('Install_Requirements') { + steps { + sh """ + echo ${SHELL} + [ -d venv ] && rm -rf venv + #virtualenv --python=python2.7 venv + virtualenv venv + #. venv/bin/activate + export PATH=${VIRTUAL_ENV}/bin:${PATH} + pip install --upgrade pip + pip install -r requirements.txt -r dev-requirements.txt + make clean + """ + } + } + + stage ('Check_style') { + steps { + sh """ + #. venv/bin/activate + [ -d report ] || mkdir report + export PATH=${VIRTUAL_ENV}/bin:${PATH} + make check || true + """ + sh """ + export PATH=${VIRTUAL_ENV}/bin:${PATH} + make flake8 | tee report/flake8.log || true + """ + sh """ + export PATH=${VIRTUAL_ENV}/bin:${PATH} + make pylint | tee report/pylint.log || true + """ + step([$class: 'WarningsPublisher', + parserConfigurations: [[ + parserName: 'Pep8', + pattern: 'report/flake8.log' + ], + [ + parserName: 'pylint', + pattern: 'report/pylint.log' + ]], + unstableTotalAll: '0', + usePreviousBuildAsReference: true + ]) + } + } + + stage ('Unit Tests') { + steps { + sh """ + #. venv/bin/activate + export PATH=${VIRTUAL_ENV}/bin:${PATH} + make unittest || true + """ + } + + post { + always { + junit keepLongStdio: true, testResults: 'report/nosetests.xml' + publishHTML target: [ + reportDir: 'report/coverage', + reportFiles: 'index.html', + reportName: 'Coverage Report - Unit Test' + ] + } + } + } + + stage ('System Tests') { + steps { + sh """ + #. venv/bin/activate + export PATH=${VIRTUAL_ENV}/bin:${PATH} + // Write file containing test node connection information if needed. + // writeFile file: "test/fixtures/nodes.yaml", text: "---\n- node: \n" + make systest || true + """ + } + + post { + always { + junit keepLongStdio: true, testResults: 'report/nosetests.xml' + publishHTML target: [ + reportDir: 'report/coverage', + reportFiles: 'index.html', + reportName: 'Coverage Report - System Test' + ] + } + } + } + + stage ('Docs') { + steps { + sh """ + #. venv/bin/activate + export PATH=${VIRTUAL_ENV}/bin:${PATH} + PYTHONPATH=. pdoc --html --html-dir docs --overwrite env.projectName + """ + } + + post { + always { + publishHTML target: [ + reportDir: 'docs/*', + reportFiles: 'index.html', + reportName: 'Module Documentation' + ] + } + } + } + + stage ('Cleanup') { + steps { + sh 'rm -rf venv' + } + } + } + + post { + failure { + mail body: "${env.JOB_NAME} (${env.BUILD_NUMBER}) ${env.projectName} build error " + + "is here: ${env.BUILD_URL}\nStarted by ${env.BUILD_CAUSE}" , + from: env.emailFrom, + //replyTo: env.emailFrom, + subject: "${env.projectName} ${env.JOB_NAME} (${env.BUILD_NUMBER}) build failed", + to: env.emailTo + } + success { + mail body: "${env.JOB_NAME} (${env.BUILD_NUMBER}) ${env.projectName} build successful\n" + + "Started by ${env.BUILD_CAUSE}", + from: env.emailFrom, + //replyTo: env.emailFrom, + subject: "${env.projectName} ${env.JOB_NAME} (${env.BUILD_NUMBER}) build successful", + to: env.emailTo + } + } +} \ No newline at end of file