def MAVEN_IMAGE = 'maven:3.8.2-openjdk-11-slim'

pipeline {
    agent any

    environment {
        BRANCH_NAME = env.GIT_BRANCH.replace('origin/', '')
    }

    stages {
        stage('Build') {
            agent {
                docker {
                    image "${MAVEN_IMAGE}"
                }
            }
            steps {
                git 'https://github.com/mabayhan/sonarqubejava'
                sh 'mvn -Dmaven.test.failure.ignore=true clean package'
            }

            post {
                success {
                    junit '**/target/surefire-reports/TEST-*.xml'
                    archiveArtifacts 'tests/target/*.jar'
                }
            }
        }

        stage('Static Code Analysis') {

            // maven:start
            agent {
                docker {
                    image "${MAVEN_IMAGE}"
                }
            }

            steps {
                withSonarQubeEnv('cicd') {
                    echo '################# MAVEN ###################'
                    sh 'mvn sonar:sonar'
                    echo '############### MAVEN END #################'
                }

            }

            // maven:end
        }

        stage('Pact'){
            steps{
                sh 'mvn pact:publish -Dpact.consumer.version=${GIT_COMMIT} -Dpact.tag=${BRANCH_NAME}'
            }
        }
    }
}
