diff --git a/Jenkinsfile b/Jenkinsfile index 9e68a14..c115614 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -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' } } }