pipeline { agent any stages { stage ('Initialize') { steps { sh ''' echo "PATH = ${PATH}" echo "M2_HOME = ${M2_HOME}" ''' } } stage('Cloning our Git') { steps { sh "git clone git@github.com:nblotti/achilleus.git achilleus" } } stage("Build & Deploy SNAPSHOT") { steps { sh "mvn -f ./achilleus/pom.xml -B deploy" } } stage("Release") { steps { sh "mvn -f ./achilleus/pom.xml -B release:prepare" sh "mvn -f ./achilleus/pom.xml -B release:perform" script { pom = readMavenPom file: './achilleus/target/checkout/pom.xml' version = pom.version } } } stage('Building our image') { steps{ script { sh "cd achilleus/target/; docker build -t nblotti/achilleus:v${version} ." } } } stage('Deploy our image') { steps{ sh "docker push nblotti/achilleus:v${version}" } } stage('Kube deploy') { steps{ sh "kubectl set image deployment/nblotti-achilleus nblotti=nblotti/achilleus:v${version} --record" } } stage('Cleaning up') { steps{ sh ''' echo "docker rmi -f \$(docker images -a -q)" ''' } } } post { always { deleteDir() } } }