pipeline { agent { label "dev" } tools { maven 'maven3' jdk 'jdk17' } environment { PATH = "/var/jenkins_home/docker-cli/bin:/var/jenkins_home/jdk-17/bin:/var/jenkins_home/kubectl/bin:${env.PATH}" JAR_FILE = "" JAR_SIZE = "" JAR_TARGET_DIR = "rc-gateway/target" JAR_NAME = "rc-gateway-*.jar" IMAGE_TAG = "azizi-dev/gateway:latest" DOCKER_FILE = "rc-gateway/Dockerfile-dev" DOCKER_DIR = "rc-gateway" K8S_NAMESPACE = "azizi" K8S_DEPLOYMENT = "gateway" K8S_APP_LABEL = "gateway" } stages { stage('Build') { steps { configFileProvider([configFile(fileId: '0fcb2100-aec1-45ef-b3ea-64f2f911d462', variable: 'MAVEN_SETTINGS')]) { sh 'mvn clean package -pl rc-gateway -am -P dev -Dmaven.test.skip=true -s $MAVEN_SETTINGS' sh 'ls ${JAR_TARGET_DIR}' script { JAR_FILE = "${sh(script:'ls -t ${JAR_TARGET_DIR}/${JAR_NAME} | head -n 1', returnStdout: true).trim()}" JAR_SIZE = "${sh(script:'du -h ${JAR_TARGET_DIR}/${JAR_NAME}', returnStdout: true).trim()}" } echo "---> Jar file: ${JAR_FILE}" echo "---> Jar size: ${JAR_SIZE}" } } } stage('Build image') { steps { sh "docker build -f ${DOCKER_FILE} -t ${IMAGE_TAG} ${DOCKER_DIR}" } } stage('Apply') { steps { sh "pwd && whoami" sh "kubectl -n ${K8S_NAMESPACE} rollout restart deployment/${K8S_DEPLOYMENT}" } } } post { always { cleanWs() } } }