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('Copy prev build artifact') { steps { script { if (currentBuild.previousBuild) { try { copyArtifacts(projectName: currentBuild.projectName, selector: specific("${currentBuild.previousBuild.number}")) def previousFile = readFile(file: "trainResults.csv") echo("The current build is ${currentBuild.number}") echo("The previous build artifact was: ${previousFile}") } catch(err) { // ignore error } } } } } stage('Copy') { steps { copyArtifacts projectName: 's444417-create-dataset' copyArtifacts projectName: "s444417-training/${params.BRANCH}/", selector: buildParameter('BUILD_SELECTOR'), optional: true sh 'python3 ./src/evalScript.py' archiveArtifacts 'trainResults.csv, metrics.png' script { metric = sh ''' script: 'tail -1 trainResults.csv', returnStdout: true ).trim()''' } } } } post { always { emailext body: "${currentBuild.currentResult}, (number, loss): ${metric}", subject: 's444417-evaluation build status', to: 'e19191c5.uam.onmicrosoft.com@emea.teams.ms' } } }