node {
  wrap([$class: 'AnsiColorBuildWrapper', 'colorMapName': 'XTerm', 'defaultFg': 2, 'defaultBg':1]) {
    checkout scm

    stage('Configure and Build') {
      sh "./tests/kubernetes_conformance/scripts/configure.sh"
      sh "mkdir -p .ssh && echo \"${AWS_SSH_PEM_KEY}\" > .ssh/${AWS_SSH_KEY_NAME} && chmod 400 .ssh/*"
      sh "echo \"${KUBE_CONFIG}\" > kube_config_cluster.yml"
      sh "./tests/kubernetes_conformance/scripts/build.sh"
    }
    try {
      stage('Run Validation Tests') {
        try {
          sh "docker run --name ${JOB_NAME}${env.BUILD_NUMBER}  --env-file .env " +
             "rancher-validation-tests /bin/bash -c \'pytest -v -s ${PYTEST_OPTIONS} tests/kubernetes_conformance/\'"
        } catch(err) {
          echo 'Test run had failures. Collecting results...'
        }

      }

      stage('Test Report') {
        sh "docker cp ${JOB_NAME}${env.BUILD_NUMBER}:/src/rancher-validation/conformance_results.tar.gz ."
        sh 'tar xvzf conformance_results.tar.gz'
        step([$class: 'JUnitResultArchiver', testResults: '**/plugins/e2e/results/junit_01.xml'])
        sh "docker rm -v ${JOB_NAME}${env.BUILD_NUMBER}"
    }
    } catch(err) {
      sh "docker stop ${JOB_NAME}${env.BUILD_NUMBER}"
      sh "docker rm -v ${JOB_NAME}${env.BUILD_NUMBER}"
    }

  }
}