@Library('infraLib') _
pipeline {
  agent {
    label 'linux-agents'
  }
  options {
    timeout(time: 10, unit: 'MINUTES')
  }
  stages {
    stage('Set Maven credentials') {
      steps {
        script {
          nexus.generateAuthorizedMavenSettingsXML("./settings.xml")
        }
      }
    }
    stage('Docker stage') {
      agent {
        docker {
          image 'maven:3-jdk-8-slim'
          reuseNode true
        }
      }
      stages {
        stage('Package') {
          steps {
            sh 'mvn package'
          }
        }
        stage('Deploy') {
          when {
            // publish only for `master`
            branch 'master'
          }
          steps {
            sh "mvn deploy --settings ${WORKSPACE}/settings.xml -Dmaven.install.skip=true"
          }
        }
      }
    }
  }
}
