81 lines
2.4 KiB
Groovy
81 lines
2.4 KiB
Groovy
#!/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: "smokehttp1771272194"),
|
|
]
|
|
}
|
|
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'
|
|
}
|
|
}
|
|
}
|