pipeline
{
    agent none
    stages
    {
        stage('fetch')
        {
            agent any
            steps
            {
                checkout  changelog: true, poll: true, scm: [$class: 'GitSCM', branches: [[name: "origin/main"]], doGenerateSubmoduleConfigurations: true, extensions: [[$class: 'CloneOption', timeout: 15, shallow: false]], submoduleCfg: [], userRemoteConfigs: [[name: 'origin', url: 'git@github.com:earthscope/evalresp.git', credentialsId: 'be834f90-9480-48ef-a09c-d47b25318e29']]]
                stash 'source'
            }
        }

        stage('build & test')
        {
            steps
            { 
                parallel (centos7: {/*centos64: {
                    node('centos64')
                    {
                        script { try {
                            sh "echo centos 6.4"
                            unstash 'source'
                            sh 'sudo yum --enablerepo=epel install -y autoconf libtool libxml2-devel check-devel  python-pip doxygen'
                            sh 'sudo pip install --upgrade pip robotframework virtualenv virtualenvwrapper'
                            sh 'tests/jenkins/build-evalresp.sh'
//                            sh 'tests/jenkins/run-c-tests.sh'
//                            sh './tests/jenkins/build-extended-robot-tests.sh 2017 1'
//                            sh './tests/jenkins/build-extended-robot-tests.sh 2010 365'
                            sh './tests/jenkins/run-robot-tests.sh'
                        } finally {
                            stash includes: '** /tests/robot/*', name: 'centos64Results'
                        }}
                    }
                },
                centos7:
                {*/
                    node('centos7')
                    {
                        script { try {
                            unstash 'source'
                            sh 'sudo yum --enablerepo=epel install -y autoconf libtool libxml2-devel check-devel doxygen'
                            sh 'sudo pip install --upgrade pip robotframework virtualenv virtualenvwrapper'
                            sh 'tests/jenkins/build-evalresp.sh'
                            //sh './tests/jenkins/run-c-tests.sh'
                            sh './tests/jenkins/build-extended-robot-tests.sh 2017 1'
                            sh './tests/jenkins/build-extended-robot-tests.sh 2010 365'
                            sh './tests/jenkins/run-robot-tests.sh'
                        } finally {
                            stash includes: '**/tests/robot/*', name: 'centos7Results'
                        }}
                    }
                },
                windows10:
                {
                    node('windows10')
                    {
                        script { try {
                            unstash 'source'
                            bat 'tests\\jenkins\\build-evalresp.bat'
                            bat 'tests\\jenkins\\build-extended-robot-tests.bat 2017 1'
                            bat 'tests\\jenkins\\build-extended-robot-tests.bat 2010 365'
                            bat 'tests\\jenkins\\run-robot-tests.bat'
                        } finally {
                            stash includes: '**/tests/robot/*', name: 'windows10Results'
                        }}
                    }
                })
            }
        }
    }
    post {
        always {
            node('main'){
            dir('centos7')
            {
                unstash 'centos7Results'
            }
            dir('windows10')
            {
                unstash 'windows10Results'
            }
            script { try {
                sh 'rebot -o output.xml */tests/robot//output.xml'
            } finally {
              step([$class: 'RobotPublisher',
                    disableArchiveOutput: false,
                    logFileName: 'log.html',
                    otherFiles: '',
                    outputFileName: 'output.xml',
                    outputPath: '.',
                    passThreshold: 100,
                    reportFileName: 'report.html',
                    unstableThreshold: 0])
            }}
            }
        }
    }
}

/*        stage('Compile Robot Results')
        {
            agent any
            steps
            {
                dir('centos64')
                {
                    unstash centos64Results
                }
                dir('centos7')
                {
                    unstash centos7Results
                }
                dir('windows10')
                {
                    unstash windows10Results
                }
                sh 'rebot --merge centos64/output.xml centos7/output.xml windows10/output.xml'
                sh 'ls'
            }
        }
*/
        /*
        stage('build & test - centos 6.4')
        {
            agent {node{label 'centos64'}}
            steps
            {
            }
            post {
                always {
                    step([$class: 'RobotPublisher',
                      disableArchiveOutput: false,
                      logFileName: 'tests/robot/log.html',
                      otherFiles: '',
                      outputFileName: 'tests/robot/output.xml',
                      outputPath: '.',
                      passThreshold: 100,
                      reportFileName: 'tests/robot/report.html',
                      unstableThreshold: 0])
                }
            }
        }
        stage('build & test - centos 7')
        {
            agent {node{label 'centos7'}}
            steps
            {
            }
            post {
                always {
                    step([$class: 'RobotPublisher',
                      disableArchiveOutput: false,
                      logFileName: 'tests/robot/log.html',
                      otherFiles: '',
                      outputFileName: 'tests/robot/output.xml',
                      outputPath: '.',
                      passThreshold: 100,
                      reportFileName: 'tests/robot/report.html',
                      unstableThreshold: 0])
                }
            }
        }
        stage('build & test - windows 10')
        {
            agent { node { label 'windows10'}}
            steps
            {
            }
            post {
                always {
                    step([$class: 'RobotPublisher',
                      disableArchiveOutput: false,
                      logFileName: 'tests/robot/log.html',
                      otherFiles: '',
                      outputFileName: 'tests/robot/output.xml',
                      outputPath: '.',
                      passThreshold: 100,
                      reportFileName: 'tests/robot/report.html',
                      unstableThreshold: 0])
                }
            }
        }
        */
