pipeline { agent any parameters { buildSelector ( defaultSelector: lastSuccessful(), description: 'Build for copying artifacts', name: 'BUILD_SELECTOR' ) gitParameter branchFilter: 'origin/(.*)', defaultValue: 'model', name: 'BRANCH', type: 'PT_BRANCH' } triggers { upstream(upstreamProjects: 's464914-training/' + params.BRANCH + '/', threshold: hudson.model.Result.SUCCESS) } stages { stage('Git Checkout') { steps { checkout scm } } stage('Copy Artifacts') { steps { copyArtifacts fingerprintArtifacts: true, projectName: 'z-s464914-create-dataset', selector: buildParameter('BUILD_SELECTOR') copyArtifacts filter: '*', projectName: 's464914-training/' + params.BRANCH + '/', selector: buildParameter('BUILD_SELECTOR') copyArtifacts filter: '*', projectName: 's464914-evaluation/evaluation/', selector: buildParameter('BUILD_SELECTOR'), optional: true } } stage('Prediction') { steps { script { def customImage = docker.build("custom-image") customImage.inside { sh 'python3 ./prediction.py' archiveArtifacts artifacts: 'predictions.txt', onlyIfSuccessful: true } } } } stage('Metrics') { steps { script { def customImage = docker.build("custom-image") customImage.inside { sh 'python3 ./metrics.py' archiveArtifacts artifacts: 'metrics.txt', onlyIfSuccessful: true } } } } stage('Plot Accuracy') { steps { script { def customImage = docker.build("custom-image") customImage.inside { sh 'python3 ./plot.py' archiveArtifacts artifacts: 'accuracy.png', onlyIfSuccessful: true } } } } } }