build file
Some checks failed
test/timeline-server/pipeline/head There was a failure building this commit

This commit is contained in:
jiangh277
2025-12-24 15:39:28 +08:00
parent 5fd6e1a9c2
commit 04c2a40856

30
Jenkinsfile vendored
View File

@@ -2,7 +2,7 @@ pipeline {
agent any agent any
tools { tools {
maven 'Maven 3.8.6' // 修正Maven工具名称 maven 'maven 3.9.12' // 修正Maven工具名称
jdk 'openjdk21' // 修正JDK工具名称使用Jenkins中实际配置的名称 jdk 'openjdk21' // 修正JDK工具名称使用Jenkins中实际配置的名称
} }
@@ -63,7 +63,7 @@ pipeline {
script { script {
echo '打包项目' echo '打包项目'
sh 'mvn package -DskipTests' sh 'mvn package -DskipTests'
// 保存构建产物 // 保存构建产物
archiveArtifacts artifacts: 'timeline-gateway-service/target/*.jar, timeline-user-service/target/*.jar, timeline-story-service/target/*.jar, timeline-file-service/target/*.jar', fingerprint: true archiveArtifacts artifacts: 'timeline-gateway-service/target/*.jar, timeline-user-service/target/*.jar, timeline-story-service/target/*.jar, timeline-file-service/target/*.jar', fingerprint: true
} }
@@ -75,22 +75,22 @@ pipeline {
script { script {
def services = ['gateway', 'user', 'story', 'file'] def services = ['gateway', 'user', 'story', 'file']
def imageTags = [:] def imageTags = [:]
for (service in services) { for (service in services) {
def serviceDir = "timeline-${service}-service" def serviceDir = "timeline-${service}-service"
def imageName = "${REGISTRY}/timeline-${service}-service:${BUILD_NUMBER}" def imageName = "${REGISTRY}/timeline-${service}-service:${BUILD_NUMBER}"
def latestImageName = "${REGISTRY}/timeline-${service}-service:latest" def latestImageName = "${REGISTRY}/timeline-${service}-service:latest"
// 检查Dockerfile是否存在如果不存在则创建 // 检查Dockerfile是否存在如果不存在则创建
if (!fileExists("${serviceDir}/Dockerfile")) { if (!fileExists("${serviceDir}/Dockerfile")) {
writeFile file: "${serviceDir}/Dockerfile", text: getDockerfileContent(serviceDir) writeFile file: "${serviceDir}/Dockerfile", text: getDockerfileContent(serviceDir)
} }
// 构建镜像 // 构建镜像
sh "docker build -t ${imageName} -t ${latestImageName} ${serviceDir}/." sh "docker build -t ${imageName} -t ${latestImageName} ${serviceDir}/."
imageTags[service] = imageName imageTags[service] = imageName
} }
env.IMAGE_TAGS = writeJSON returnText: imageTags env.IMAGE_TAGS = writeJSON returnText: imageTags
} }
} }
@@ -101,11 +101,11 @@ pipeline {
script { script {
def imageTags = readJSON text: env.IMAGE_TAGS def imageTags = readJSON text: env.IMAGE_TAGS
def services = ['gateway', 'user', 'story', 'file'] def services = ['gateway', 'user', 'story', 'file']
for (service in services) { for (service in services) {
def imageName = imageTags[service] def imageName = imageTags[service]
sh "docker push ${imageName}" sh "docker push ${imageName}"
// 也推送latest标签 // 也推送latest标签
def latestImageName = imageName.replace(BUILD_NUMBER, "latest") def latestImageName = imageName.replace(BUILD_NUMBER, "latest")
sh "docker push ${latestImageName}" sh "docker push ${latestImageName}"
@@ -120,16 +120,16 @@ pipeline {
// 创建或更新docker-compose文件 // 创建或更新docker-compose文件
def composeContent = getComposeFileContent(BUILD_NUMBER) def composeContent = getComposeFileContent(BUILD_NUMBER)
writeFile file: 'docker-compose.yml', text: composeContent writeFile file: 'docker-compose.yml', text: composeContent
// 拉取最新镜像 // 拉取最新镜像
sh 'docker-compose pull' sh 'docker-compose pull'
// 停止旧容器 // 停止旧容器
sh 'docker-compose down || true' sh 'docker-compose down || true'
// 启动新容器 // 启动新容器
sh 'docker-compose up -d' sh 'docker-compose up -d'
echo "所有服务已部署完成" echo "所有服务已部署完成"
} }
} }
@@ -140,7 +140,7 @@ pipeline {
success { success {
script { script {
sh 'echo "构建和部署成功完成"' sh 'echo "构建和部署成功完成"'
// 发送成功通知 // 发送成功通知
emailext ( emailext (
subject: "构建成功: ${env.JOB_NAME} - ${env.BUILD_NUMBER}", subject: "构建成功: ${env.JOB_NAME} - ${env.BUILD_NUMBER}",
@@ -152,7 +152,7 @@ pipeline {
failure { failure {
script { script {
sh 'echo "构建或部署失败"' sh 'echo "构建或部署失败"'
// 发送失败通知 // 发送失败通知
emailext ( emailext (
subject: "构建失败: ${env.JOB_NAME} - ${env.BUILD_NUMBER}", subject: "构建失败: ${env.JOB_NAME} - ${env.BUILD_NUMBER}",
@@ -302,4 +302,4 @@ volumes:
mysql_data: mysql_data:
minio_data: minio_data:
""" """
} }