pipeline { agent { label 'pr-lint-slave' } environment { PYENV_ROOT = "/usr/local/pyenv" PATH = "$PYENV_ROOT/bin:$PATH" } stages { stage('github-pending') { steps { githubNotify credentialsId: 'test-jenkins-credentials', description: 'Testing lint...', status: 'PENDING', context: "jenkins/pr/lint" } } stage('setup') { steps { sh 'eval "$(pyenv init -)"; pyenv install 2.7.14 || echo "We already have this python."; pyenv local 2.7.14; pyenv shell 2.7.14' sh 'eval "$(pyenv init -)"; pip install pylint SaltPyLint' sh 'eval "$(pyenv init -)"; which pylint; pylint --version' } } stage('linting') { failFast false parallel { stage('salt linting') { steps { sh 'eval "$(pyenv init -)"; pylint --rcfile=.testing.pylintrc --disable=W1307,str-format-in-logging setup.py salt/ | tee pylint-report.xml' archiveArtifacts artifacts: 'pylint-report.xml' } } stage('test linting') { steps { sh 'eval "$(pyenv init -)"; pylint --rcfile=.testing.pylintrc --disable=W0232,E1002,W1307,str-format-in-logging tests/ | tee pylint-report-tests.xml' archiveArtifacts artifacts: 'pylint-report-tests.xml' } } } } } post { success { githubNotify credentialsId: 'test-jenkins-credentials', description: 'The lint job has passed', status: 'SUCCESS', context: "jenkins/pr/lint" } failure { githubNotify credentialsId: 'test-jenkins-credentials', description: 'The lint job has failed', status: 'FAILURE', context: "jenkins/pr/lint" } } }