pipeline {
   agent {
       label 'ubuntu'
   }
   
    tools { 
        maven 'maven_latest' 
        jdk 'jdk_17_latest' 
    }

    stages {
        stage("Initialization") {
            steps {
                script {
                    currentBuild.displayName = "#${BUILD_NUMBER} CXF ${params.Version} JAX-RS 3.1 TCK"
                }
            }
        }

       stage("Prepare") {
           steps {
               cleanWs()
           }
       }

       stage ('Check tooling') {
            steps {
                sh '''
                    echo "PATH = ${PATH}"
                    echo "M2_HOME = ${M2_HOME}"
                    echo "JAVA_HOME = ${JAVA_HOME}"
                    echo "WORKSPACE = ${PWD}"
                '''
            }
       }

      stage('Checkout Apache CXF') {
           steps {
               checkout([$class: 'GitSCM',
                   branches: [[name: 'main']],
                   userRemoteConfigs: [[url: 'https://github.com/apache/cxf/']],
                   extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'cxf'], [$class: 'CloneOption', shallow: true]]
               ])
           }
       }
       
       stage('Run JAX-RS TCK') {
           steps {
                dir("${WORKSPACE}/cxf/tck/cxf-tck") {
                    sh "mvn clean verify -Dcxf.version=${params.Version}"
                }
           }
           
           post { 
                always {
                    junit allowEmptyResults: true, testResults: '**/failsafe-reports/*.xml'
                }
           }
       }
   }
   
   post { 
        always {
            cleanWs()
        }
   }
}
