新疆后端项目

This commit is contained in:
DESKTOP-BLB5287\FP
2025-06-30 14:31:09 +08:00
commit 0e52aff1f1
2596 changed files with 261030 additions and 0 deletions
+273
View File
@@ -0,0 +1,273 @@
def FeiShu(status, serviceName){
def jobNameParts = JOB_NAME.tokenize('/') as String[]
def folderName = jobNameParts[0]
String statusText = ""
if (status == 1) {
statusText = "<font color=\\\"green\\\">成功<font>"
} else if (status == 2) {
statusText = "<font color=\\\"yellow\\\">不稳定<font>"
} else {
statusText = "<font color=\\\"red\\\">失败<font>"
}
env.COMMIT_SHORT_HASH = "${sh(script:'git log --pretty=format:\"%h\" --no-merges|head -1', returnStdout: true)}".trim()
env.COMMIT_MESSAGE = "${sh(script:'git log --pretty=format:\"%s\" --no-merges|head -1', returnStdout: true)}".trim()
env.COMMIT_AUTHOR = "${sh(script:'git log --pretty=format:\"%cn\" --no-merges|head -1', returnStdout: true)}".trim()
sh """
curl --location --request POST 'https://open.feishu.cn/open-apis/bot/v2/hook/1babaf75-a3e4-4bf0-b236-ee9112b5f68f' \
--header 'Content-Type: application/json' \
--data '{
"msg_type": "interactive",
"card": {
"config": {
"update_multi": true,
"enable_forward": true
},
"header": {
"template": "blue",
"title": {
"content": "项目 四合一后端 构建报告",
"tag": "plain_text"
}
},
"card_link": {
"url": "${JENKINS_URL}/blue/organizations/jenkins/${folderName}/detail/${BRANCH_NAME}/${BUILD_NUMBER}/pipeline",
"pc_url": "",
"android_url": "",
"ios_url": ""
},
"elements": [
{
"tag": "markdown",
"content": "**构建分支**${BRANCH_NAME}\\n**构建编号**${BUILD_NUMBER}\\n**提交成员**${COMMIT_AUTHOR}\\n**提交信息**${COMMIT_MESSAGE}\\n**构建服务**${serviceName}\\n**构建状态**${statusText}"
}
]
}
}'
"""
}
pipeline {
agent any
triggers {
pollSCM('*/5 * * * *')
}
environment {
PROJECT_NAME = 'cqyt_system'
}
stages{
stage("Update All Check") {
when {
anyOf {
branch "develop"
branch "test"
branch "master"
}
}
agent {
docker {
image "ubuntu:22.04"
args "-v hash_storage:/hash"
}
}
steps {
dir("${env.WORKSPACE}/jeecg-boot-base-core") {
sh '''#!/bin/bash -xe
cp -r /hash/${PROJECT_NAME}/env ./
buildFIle="./isBuild"
sumPath="/hash/${PROJECT_NAME}/jeecg-boot-base-core"
sumFile="${sumPath}/${BRANCH_NAME}"
checksum=$(find . -type f -exec md5sum {} + | LC_ALL=C sort | md5sum)
checksum=${checksum:0:32}
if [[ ! -d ${sumPath} ]]
then
mkdir -p ${sumPath}
fi
if [[ ! -f ${sumFile} ]]
then
echo ${checksum} > ${sumFile}
echo "TRUE" > ${buildFIle}
else
if [[ "${checksum}" = "$(cat ${sumFile})" ]]
then
echo "FALSE" > ${buildFIle}
else
echo ${checksum} > ${sumFile}
echo "TRUE" > ${buildFIle}
fi
fi
'''
script {
env.IS_BUILD = readFile('./isBuild').trim()
env.NACOS_SERVER_ADDR = readFile("./env/NACOS_SERVER_ADDR").trim()
env.NACOS_USERNAME = readFile("./env/NACOS_USERNAME").trim()
env.NACOS_PASSWORD = readFile("./env/NACOS_PASSWORD").trim()
env.NACOS_NAMESPACE = readFile("./env/NACOS_NAMESPACE").trim()
if ( env.BRANCH_NAME == 'master' ) {
env.NETWORK_NAME = 'stage'
} else
if ( env.BRANCH_NAME == 'test' ) {
env.NETWORK_NAME = 'test'
} else {
env.NETWORK_NAME = 'dev'
}
env.PROFILE_NAME = env.NETWORK_NAME
env.NACOS_GROUP = env.NETWORK_NAME
}
sh "rm -f ./isBuild"
}
}
}
stage("Microservice CI") {
when {
anyOf {
branch "develop"
branch "test"
branch "master"
}
}
matrix {
axes {
axis {
name 'SERVICE_NAME'
values 'jeecg-system', 'health-im', 'health-medical', 'health-emergency', 'health-consultation'
}
}
stages {
stage("Diff Check") {
agent {
docker {
image "ubuntu:22.04"
args "-v hash_storage:/hash"
}
}
steps {
dir("${env.WORKSPACE}/${SERVICE_NAME}") {
sh '''#!/bin/bash -xe
buildFIle="./isBuild"
if [[ "${IS_BUILD}" = "TRUE" ]]
then
echo "TRUE" > ${buildFIle}
exit 0
fi
sumPath="/hash/${PROJECT_NAME}/${SERVICE_NAME}"
sumFile="${sumPath}/${BRANCH_NAME}"
checksum=$(find . -type f -exec md5sum {} + | LC_ALL=C sort | md5sum)
checksum=${checksum:0:32}
if [[ ! -d ${sumPath} ]]
then
mkdir -p ${sumPath}
fi
if [[ ! -f ${sumFile} ]]
then
echo ${checksum} > ${sumFile}
echo "TRUE" > ${buildFIle}
else
if [[ "${checksum}" = "$(cat ${sumFile})" ]]
then
echo "FALSE" > ${buildFIle}
else
echo ${checksum} > ${sumFile}
echo "TRUE" > ${buildFIle}
fi
fi
'''
script {
env."${SERVICE_NAME}_IS_BUILD" = readFile('./isBuild').trim()
}
sh "rm -f ./isBuild"
}
}
}
stage("Maven Package") {
when {
environment name: "${SERVICE_NAME}_IS_BUILD", value: "TRUE"
}
agent {
docker {
image "maven:3-eclipse-temurin-8"
args "-v maven-repo:/root/.m2 -v maven-conf:/usr/share/maven/conf"
}
}
steps {
dir("${env.WORKSPACE}") {
echo "Package ${SERVICE_NAME}"
sh "mvn -pl health-system-boms,${SERVICE_NAME}/${SERVICE_NAME}-start -e -B -U -am clean install"
}
dir("${env.WORKSPACE}/${SERVICE_NAME}/${SERVICE_NAME}-start/target") {
echo "Copy ${SERVICE_NAME} JAR"
stash(name: "${SERVICE_NAME}_jar", includes: "${SERVICE_NAME}-start.jar")
}
dir("${env.WORKSPACE}") {
echo "Clean Build"
sh "mvn clean"
}
}
}
stage("Docker Build & Run") {
when {
environment name: "${SERVICE_NAME}_IS_BUILD", value: "TRUE"
}
agent any
environment {
REGISTER_HOST = "registry.cn-shanghai.aliyuncs.com"
REGISTER_REPO = "yg7709"
IMAGE_NAME = "${PROJECT_NAME}_${SERVICE_NAME}"
IMAGE_TAG_LATEST = "${BRANCH_NAME}-latest"
IMAGE_TAG_COMMIT = "${BRANCH_NAME}-${GIT_COMMIT}"
}
steps {
dir("${env.WORKSPACE}/.jenkins") {
unstash("${SERVICE_NAME}_jar")
echo "Docker Build ${SERVICE_NAME}"
sh "docker compose -f docker-compose.build.yaml build"
echo "Docker Push ${SERVICE_NAME}"
sh "docker push ${REGISTER_HOST}/${REGISTER_REPO}/${IMAGE_NAME}:${IMAGE_TAG_LATEST}"
sh "docker push ${REGISTER_HOST}/${REGISTER_REPO}/${IMAGE_NAME}:${IMAGE_TAG_COMMIT}"
echo "Docker Deploy ${SERVICE_NAME}"
sh "docker compose -p ${PROJECT_NAME}_${PROFILE_NAME} up -d ${SERVICE_NAME}"
}
}
post {
success {
FeiShu(1,SERVICE_NAME)
}
}
}
}
post {
unstable {
FeiShu(2,SERVICE_NAME)
}
failure {
FeiShu(3,SERVICE_NAME)
}
}
}
}
}
}