pipeline {
  agent any

  environment {
    FULL_PATH_BRANCH = "${sh(script:'git name-rev --name-only HEAD', returnStdout: true)}"
    GIT_BRANCH = FULL_PATH_BRANCH.substring(FULL_PATH_BRANCH.lastIndexOf('/') + 1, FULL_PATH_BRANCH.length() - 1)
  }

  stages {
    stage('setup-environment') {
      steps {
        sh "bash script/jenkins/branches/setup_venv.sh ${env.GIT_BRANCH}"
      }
    }
    stage('ci') {
      parallel {

        stage('lint') {
          steps {
            sh "bash script/jenkins/branches/make_in_venv.sh ${env.GIT_BRANCH} lint"
            discoverGitReferenceBuild referenceJob: 'petals_branches/develop'
            recordIssues tools: [pyLint(pattern: 'pylint.log')]
          }
        }

        stage('unit_test') {
          steps {
            sh "bash script/jenkins/branches/make_in_venv.sh ${env.GIT_BRANCH} unit_test"
          }
        }

      }
    }
  }

  post {
    always {
      junit 'tests_xml/*.xml'
      recordCoverage(
        qualityGates: [[
          baseline: 'PROJECT_DELTA',
          metric: 'LINE',
          threshold: 0.0
        ]],
        tools: [[
          parser: 'COBERTURA',
          pattern: 'coverage.xml'
        ]]
      )
    }
  }
}
