53 lines
1.8 KiB
Groovy
53 lines
1.8 KiB
Groovy
// BuildFlow API CI/CD (.NET 10)
|
|
// Checkout -> Build Image -> Push Harbor
|
|
// 部署阶段预留: API 依赖 PG/Mongo/Redis/RabbitMQ, 待中间件就绪后启用 Deploy stage
|
|
pipeline {
|
|
agent any
|
|
environment {
|
|
HARBOR = "43.134.235.58:58080"
|
|
IMAGE = "${HARBOR}/buildflow/buildflow-api"
|
|
TAG = "${env.BUILD_NUMBER}"
|
|
}
|
|
options {
|
|
timeout(time: 30, unit: "MINUTES")
|
|
buildDiscarder(logRotator(numToKeepStr: "10"))
|
|
}
|
|
stages {
|
|
stage("Checkout") {
|
|
steps { checkout scm }
|
|
}
|
|
stage("Build Image") {
|
|
steps {
|
|
sh "docker build -t ${IMAGE}:${TAG} -t ${IMAGE}:latest ."
|
|
}
|
|
}
|
|
stage("Push Harbor") {
|
|
steps {
|
|
withCredentials([usernamePassword(credentialsId: "harbor-credentials", usernameVariable: "HUSER", passwordVariable: "HPASS")]) {
|
|
sh """
|
|
echo \$HPASS | docker login ${HARBOR} -u \$HUSER --password-stdin
|
|
docker push ${IMAGE}:${TAG}
|
|
docker push ${IMAGE}:latest
|
|
docker logout ${HARBOR}
|
|
"""
|
|
}
|
|
}
|
|
}
|
|
stage("Deploy") {
|
|
// TODO: 等 PG/Mongo/Redis/RabbitMQ 中间件就绪后启用
|
|
// 由 deploy-agent 节点执行: docker pull + docker compose up
|
|
steps {
|
|
echo "Deploy stage 暂未启用: API 依赖中间件(PG/Mongo/Redis/RabbitMQ)尚未部署"
|
|
}
|
|
}
|
|
}
|
|
post {
|
|
success { echo "BuildFlow API CI/CD SUCCESS: ${IMAGE}:${TAG}" }
|
|
failure { echo "BuildFlow API CI/CD FAILED" }
|
|
always {
|
|
sh "docker rmi ${IMAGE}:${TAG} ${IMAGE}:latest 2>/dev/null || true"
|
|
deleteDir()
|
|
}
|
|
}
|
|
}
|