#!/usr/bin/env groovy pipeline { agent any options { disableConcurrentBuilds() } environment { PYENVPIPELINE_VIRTUALENV = '1' } stages { stage('Build') { steps { sh ''' python3 -m venv .venv . .venv/bin/activate pip install --upgrade pip setuptools wheel make install pip install --upgrade setuptools wheel make migrate loaddata collectstatic ''' } } stage('Lint') { steps { sh ''' . .venv/bin/activate make lint ''' } } stage('Test') { steps { sh ''' . .venv/bin/activate make test ''' } post { always { junit allowEmptyResults: true, testResults: '**/nosetests.xml' } success { recordCoverage(tools: [[parser: 'COBERTURA', pattern: '**/coverage.xml']]) } } } } post { always { echo 'This will always run' } success { echo 'This will run only if successful' sh ''' . .venv/bin/activate version --plugin=wheel -B${BUILD_NUMBER} --skip-build git push --tags ''' build job: 'deployment-stg-create', quietPeriod: 20, wait: false, parameters: [ string(name: 'UPSTREAM_BUILD', value: "smokereal1771273170"), ] } failure { emailext subject: "JENKINS-NOTIFICATION: ${currentBuild.currentResult}: Job '${env.JOB_NAME} #${env.BUILD_NUMBER}'", body: '${SCRIPT, template="groovy-text.template"}', recipientProviders: [culprits(), brokenBuildSuspects(), brokenTestsSuspects()] } unstable { echo 'This will run only if the run was marked as unstable' } changed { echo 'This will run only if the state of the Pipeline has changed' echo 'For example, if the Pipeline was previously failing but is now successful' } } }