aslan-h5/pipeline-dev
2026-03-27 18:17:14 +08:00

67 lines
2.3 KiB
Plaintext

pipeline {
agent {
label "dev"
}
tools {
nodejs 'node22'
}
environment {
PATH = "/var/jenkins_home/docker-cli/bin:/var/jenkins_home/kubectl/bin:${env.PATH}"
BUILD_IMAGE = "${sh(script:'echo -n azizi-dev:azizi-h5-$(date +%Y%m%dv%H%M%S)', returnStdout: true)}"
ALIYUN_REGISTRY = "registry.cn-hangzhou.aliyuncs.com/azizi-dev/azizi-h5"
IMAGE_REP_TAG = ""
K8S_NAMESPACE = "azizi"
K8S_DEPLOYMENT = "azizi-h5"
K8S_APP_LABEL = "azizi-h5"
DOCKER_FILE = "Dockerfile-dev"
}
stages {
stage('Build') {
steps {
sh 'export PATH=$HOME/bin:$PATH && export NODE_HOME=/usr/local/node && export PATH=$NODE_HOME/bin:$PATH && npm config set registry https://registry.npmmirror.com && npm install'
sh 'export PATH=$HOME/bin:$PATH && export NODE_HOME=/usr/local/node && export PATH=$NODE_HOME/bin:$PATH && npm run build:dev'
sh 'du -sh dist'
script {
IMAGE_REP_TAG = "${ALIYUN_REGISTRY}:azizi-h5-${sh(script:'date +%Y%m%dv%H%M%S', returnStdout: true).trim()}"
}
echo "---> Image registry tag: ${IMAGE_REP_TAG}"
}
}
stage('Build image') {
steps {
withCredentials([usernamePassword(
credentialsId: 'aliyun-registry',
usernameVariable: 'ALIYUN_USER',
passwordVariable: 'ALIYUN_PASS'
)]) {
sh 'echo $ALIYUN_PASS | docker login --username $ALIYUN_USER --password-stdin registry.cn-hangzhou.aliyuncs.com'
}
sh "docker build -f ${DOCKER_FILE} -t ${IMAGE_REP_TAG} ."
}
}
stage('Upload image') {
steps {
sh "docker push ${IMAGE_REP_TAG}"
sh "docker tag ${IMAGE_REP_TAG} ${ALIYUN_REGISTRY}:latest"
sh "docker push ${ALIYUN_REGISTRY}:latest"
sh "docker rmi -f ${IMAGE_REP_TAG} ${ALIYUN_REGISTRY}:latest"
}
}
stage('Apply') {
steps {
sh "kubectl -n ${K8S_NAMESPACE} set image deployment/${K8S_DEPLOYMENT} ${K8S_APP_LABEL}=${IMAGE_REP_TAG}"
}
}
}
post {
always {
cleanWs()
}
}
}