pipeline {
    agent {
        dockerfile true
    } 
    parameters {
        buildSelector(defaultSelector: lastSuccessful(), description: 'Use latest build training', name: 'BUILD_SELECTOR_TRAINING')
        buildSelector(defaultSelector: lastSuccessful(), description: 'Use latest build evaluation', name: 'BUILD_SELECTOR_EVALUATION')
        buildSelector(defaultSelector: lastSuccessful(), description: 'Use latest build training', name: 'BUILD_SELECTOR_CREATE')
        gitParameter branchFilter: 'origin/(.*)', defaultValue: 'master', name: 'BRANCH', type: 'PT_BRANCH'
    }
    stages {
        stage("Copy artifacts"){
            steps {
                copyArtifacts fingerprintArtifacts: true, projectName: "s434704-training/${params.BRANCH}", selector: buildParameter('BUILD_SELECTOR_TRAINING')
                copyArtifacts fingerprintArtifacts: true, projectName: "s434704-evaluation/${params.BRANCH}", optional: true, selector: buildParameter('BUILD_SELECTOR_EVALUATION')
                copyArtifacts fingerprintArtifacts: true, projectName: 's434704-create-dataset/${params.BRANCH}', selector: buildParameter('BUILD_SELECTOR_CREATE')
            }
        }
        stage("Run evaluation"){
            steps {
                sh "python3 evaluation.py"
            }
        }
        stage('Archive single metrics') {
			steps{
				archiveArtifacts 'rmse.txt'
			}
		}
        stage('Save metrics to bulk file & create chart') {
            steps{
                sh "python3 save_metrics.py ${env.BUILD_ID}"
                archiveArtifacts 'bulk_metrics.txt'
                sh "python3 create_chart.py"
                archiveArtifacts 'chart.png'
            }
        }
    }
    post {
        always {
            mail body: "EVALUATION - ${currentBuild.currentResult}", subject: 's434704', to: '26ab8f35.uam.onmicrosoft.com@emea.teams.ms'
        }
    }
}