2026-04-09 21:33:09 +08:00

62 lines
2.4 KiB
Plaintext

pipeline {
agent {
label "prod"
}
environment {
BUILD_IMAGE = "${sh(script:'echo -n halar:console-$(date +%Y%m%dv%H%M%S)', returnStdout: true)}"
JAR_FILE = ""
JAR_SIZE = ""
JAR_TARGET_DIR = "rc-service/rc-service-console/console-start/target"
JAR_NAME = "rc-service-console-*.jar"
IMAGE_REP_TAG = "794038239327.dkr.ecr.ap-southeast-1.amazonaws.com/"
DOCKER_FILE = "rc-service/rc-service-console/Dockerfile"
DOCKER_DIR = "rc-service/rc-service-console"
K8S_NAMESPACE = "prod-hooka"
K8S_DEPLOYMENT = "console"
K8S_APP_LABEL = "console"
}
stages {
stage('Build') {
steps {
sh 'mvn clean package -pl rc-service/rc-service-console/console-start -am -P prod -Dmaven.test.skip=true'
sh 'ls ${JAR_TARGET_DIR}'
script {
JAR_FILE="${sh(script:'ls -t ${JAR_TARGET_DIR}/${JAR_NAME} | head -n 1', returnStdout: true)}"
JAR_SIZE="${sh(script:'du -h ${JAR_TARGET_DIR}/${JAR_NAME}', returnStdout: true)}"
IMAGE_REP_TAG="${sh(script:'echo -n ${IMAGE_REP_TAG}${BUILD_IMAGE}', returnStdout: true)}"
}
echo "---> Jar file: ${JAR_FILE}"
echo "---> Jar size: ${JAR_SIZE}"
echo "---> Image name: ${BUILD_IMAGE}"
echo "---> Image registry tag: ${IMAGE_REP_TAG}"
}
}
stage('Build image') {
steps {
sh "aws ecr get-login-password --region ap-southeast-1 | docker login --username AWS --password-stdin 794038239327.dkr.ecr.ap-southeast-1.amazonaws.com"
sh "docker build --build-arg SERVICE_VERSION=${BUILD_IMAGE} -f ${DOCKER_FILE} -t ${BUILD_IMAGE} ${DOCKER_DIR}"
}
}
stage('Upload image') {
steps {
sh "docker tag ${BUILD_IMAGE} ${IMAGE_REP_TAG}"
sh "docker push ${IMAGE_REP_TAG}"
sh "docker rmi -f ${BUILD_IMAGE} ${IMAGE_REP_TAG}"
}
}
stage('Apply') {
steps {
sh "kubectl -n ${K8S_NAMESPACE} set image deployment/${K8S_DEPLOYMENT} ${K8S_APP_LABEL}=${IMAGE_REP_TAG} --kubeconfig=/data/kube/hooka-config"
}
}
}
post {
always {
cleanWs()
}
}
}