#!/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 coverage pip install --upgrade pip "setuptools==69.5.1" wheel make EXTRAS="" install pip install --upgrade "setuptools==69.5.1" wheel make migrate loaddata collectstatic pip install "httpx<0.28" ''' } } stage('Lint') { steps { sh ''' . .venv/bin/activate pip install coverage make lint ''' } } stage('Test') { steps { sh ''' . .venv/bin/activate pip install coverage 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 pip install coverage 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: "smokee2eh1771368349"), ] } 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' } } }