java-spring-microservice/Jenkinsfile
Jim Nicholson 9ddef534b3
All checks were successful
Homelab/java-spring-microservice/pipeline/head This commit looks good
More refactoring
2021-12-23 17:56:03 -08:00

73 lines
2.2 KiB
Groovy

def POD_LABEL="servicedemo-${UUID.randomUUID().toString()}"
def REGISTRY="docker.home.thejimnicholson.com/servicedemo"
def POM_VERSION="unknown"
def MVN_OPTS="-B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
podTemplate(label: POD_LABEL, containers: [
containerTemplate(
name: 'maven',
image: 'maven:3.8.4-openjdk-11',
command: 'sleep',
args: '30d'
),
containerTemplate(
name: 'kaniko',
image: 'gcr.io/kaniko-project/executor:debug',
command: 'sleep',
args: '30d'
)
], workspaceVolume: dynamicPVC()) {
node(POD_LABEL) {
stage('Checkout') {
checkout scm
sh "git fetch"
GIT_HASH = sh (
script: 'git rev-parse --short HEAD',
returnStdout: true
).trim()
GIT_TAG = sh (
script: 'git describe --tags --always --dirty=-dirty',
returnStdout: true
).trim()
container('maven') {
stage('Prep') {
sh """
mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -Dartifact=fr.brouillard.oss:jgitver:0.14.0:jar:executable ${MVN_OPTS}
"""
}
stage('Build') {
sh """
mvn clean package -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
"""
POM_VERSION=sh (
script: "java -jar /root/.m2/repository/fr/brouillard/oss/jgitver/0.14.0/jgitver-0.14.0-executable.jar",
returnStdout: true
)
}
}
container('kaniko') {
stage('Image') {
ansiColor('xterm') {
sh "/kaniko/executor \
-f `pwd`/Dockerfile \
-c `pwd` \
--insecure \
--skip-tls-verify \
--tarPath ./target/servicedemo-${POM_VERSION}.image.tar \
--destination=${REGISTRY}servicedemo:${POM_VERSION} \
--destination=${REGISTRY}servicedemo:${GIT_TAG}"
}
}
stage('Archive') {
archiveArtifacts artifacts: 'target/*.tar', followSymlinks: false
archiveArtifacts artifacts: 'target/*.jar', followSymlinks: false
}
}
}
}
}