Standardize Jenkins stages to canonical project pipeline
This commit is contained in:
49
Jenkinsfile
vendored
49
Jenkinsfile
vendored
@@ -2,42 +2,57 @@
|
||||
|
||||
pipeline {
|
||||
agent any
|
||||
options { disableConcurrentBuilds() }
|
||||
options {
|
||||
disableConcurrentBuilds()
|
||||
timestamps()
|
||||
buildDiscarder(logRotator(numToKeepStr: '30'))
|
||||
}
|
||||
|
||||
environment {
|
||||
PYENVPIPELINE_VIRTUALENV = '1'
|
||||
PIP_DISABLE_PIP_VERSION_CHECK = '1'
|
||||
PYTHONUNBUFFERED = '1'
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Build') {
|
||||
stage('Runtime') {
|
||||
steps {
|
||||
sh '''
|
||||
python3 --version
|
||||
python3 -m venv .venv
|
||||
. .venv/bin/activate
|
||||
python -m pip install -U "pip<24.1" "setuptools<81" wheel
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
stage('Resolve Dependencies') {
|
||||
steps {
|
||||
sh '''
|
||||
. .venv/bin/activate
|
||||
pip install coverage
|
||||
pip install --upgrade pip "setuptools==69.5.1" wheel
|
||||
make EXTRAS="" install
|
||||
cp "${JOB_BASE_NAME}/ocyan.json" "${JOB_BASE_NAME}/${JOB_BASE_NAME}.json"
|
||||
pip install pylint pylint-django vdt.versionplugin.wheel
|
||||
pip install --upgrade "setuptools==69.5.1" wheel
|
||||
pip install ruff pylint pylint-django vdt.versionplugin.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
|
||||
'''
|
||||
}
|
||||
@@ -45,22 +60,12 @@ pipeline {
|
||||
always {
|
||||
junit allowEmptyResults: true, testResults: '**/nosetests.xml'
|
||||
}
|
||||
success {
|
||||
echo "Coverage step skipped"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post {
|
||||
always {
|
||||
echo 'This will always run'
|
||||
}
|
||||
success {
|
||||
echo 'This will run only if successful'
|
||||
sh '''
|
||||
. .venv/bin/activate
|
||||
pip install coverage
|
||||
'''
|
||||
build job: 'deploy-project-stg',
|
||||
parameters: [string(name: 'PROJECT_NAME', value: env.JOB_BASE_NAME)],
|
||||
wait: false,
|
||||
@@ -70,14 +75,6 @@ pipeline {
|
||||
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'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user