build file
Some checks failed
test/timeline-server/pipeline/head There was a failure building this commit
Some checks failed
test/timeline-server/pipeline/head There was a failure building this commit
This commit is contained in:
30
Jenkinsfile
vendored
30
Jenkinsfile
vendored
@@ -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:
|
||||||
"""
|
"""
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user