pipeline { agent { dockerfile true } parameters { gitParameter branchFilter: 'origin/(.*)', defaultValue: 'master', name: 'BRANCH', type: 'PT_BRANCH' buildSelector( defaultSelector: lastSuccessful(), description: 'Which build to use for copying artifacts', name: 'BUILD_SELECTOR' ) } stages { stage('Stage 1') { steps { git branch: "${params.BRANCH}", url: 'https://git.wmi.amu.edu.pl/s449288/ium_s449288.git' sh 'chmod u+x ./evaluate.py' echo 'Copying datasets from the create-dataset job...' copyArtifacts filter: 'lego_sets_clean_test.csv', projectName: 's449288-create-dataset' echo 'Datasets copied' echo 'Copying model from the training job...' copyArtifacts filter: 'lego_reg_model.tar.gz', projectName: 's449288-training/master/', selector: buildParameter('BUILD_SELECTOR') echo 'Model copied' sh 'tar xvzf lego_reg_model.tar.gz' echo 'Optional copying of the metrics file from previous build...' copyArtifacts filter: 'eval_results.txt', projectName: 's449288-evaluation/master/', optional: true echo 'Metrics file copied if it did not exist' echo 'Evaluating model...' sh 'python3 evaluate.py' echo 'Model evaluated. Metrics saved. Plot saved.' sh 'head eval_results.txt' sh 'file error_plot.jpg' echo 'Archiving metrics file...' archiveArtifacts 'eval_results.txt' echo 'File archived' script { LAST_MAE = sh ( script: 'tail -1 eval_results.txt', returnStdout: true ).trim() } } } } post { success { emailext body: "SUCCESS - ${LAST_MAE} MAE", subject: 's449288-evaluation build status and score', to: 'e19191c5.uam.onmicrosoft.com@emea.teams.ms' } failure { emailext body: "FAILURE - ${LAST_MAE} MAE", subject: 's449288-evaluation build status and score', to: 'e19191c5.uam.onmicrosoft.com@emea.teams.ms' } unstable { emailext body: "UNSTABLE - ${LAST_MAE} MAE", subject: 's449288-evaluation build status and score', to: 'e19191c5.uam.onmicrosoft.com@emea.teams.ms' } changed { emailext body: "CHANGED - ${LAST_MAE} MAE", subject: 's449288-evaluation build status and score', to: 'e19191c5.uam.onmicrosoft.com@emea.teams.ms' } } }