build(ci): CI/CD 支持 release/next 预发布分支
- Jenkinsfile: Deploy 和 Health Check 阶段支持 release/next 分支 - release/next 部署到 staging 服务器(172.17.16.7),master 部署到 prod - 仅 master 分支推送 latest 镜像标签,避免预发布覆盖生产镜像 - GitHub Actions 添加 release/next 分支触发构建 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2
.github/workflows/maven.yml
vendored
2
.github/workflows/maven.yml
vendored
@@ -5,7 +5,7 @@ name: Java CI with Maven
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ master ]
|
branches: [ master, release/next ]
|
||||||
# pull_request:
|
# pull_request:
|
||||||
# branches: [ master ]
|
# branches: [ master ]
|
||||||
|
|
||||||
|
|||||||
29
Jenkinsfile
vendored
29
Jenkinsfile
vendored
@@ -27,11 +27,15 @@ pipeline {
|
|||||||
// 服务配置
|
// 服务配置
|
||||||
CORE_SERVICES = 'viewsh-gateway,viewsh-module-system-server,viewsh-module-infra-server,viewsh-module-iot-server,viewsh-module-iot-gateway,viewsh-module-ops-server'
|
CORE_SERVICES = 'viewsh-gateway,viewsh-module-system-server,viewsh-module-infra-server,viewsh-module-iot-server,viewsh-module-iot-gateway,viewsh-module-ops-server'
|
||||||
|
|
||||||
// 部署配置(Prod 服务器内网地址)
|
// 部署配置(默认 Prod,release/next 分支会在 Initialize 阶段覆盖为 Staging)
|
||||||
DEPLOY_HOST = '172.17.16.14'
|
DEPLOY_HOST = '172.17.16.14'
|
||||||
DEPLOY_PATH = '/opt/aiot-platform-cloud'
|
DEPLOY_PATH = '/opt/aiot-platform-cloud'
|
||||||
SSH_KEY = '/var/jenkins_home/.ssh/id_rsa'
|
SSH_KEY = '/var/jenkins_home/.ssh/id_rsa'
|
||||||
|
|
||||||
|
// Staging 服务器配置
|
||||||
|
STAGING_DEPLOY_HOST = '172.17.16.7'
|
||||||
|
STAGING_DEPLOY_PATH = '/opt/aiot-platform-cloud'
|
||||||
|
|
||||||
// 性能配置 - 将动态调整
|
// 性能配置 - 将动态调整
|
||||||
BUILD_TIMEOUT = 45
|
BUILD_TIMEOUT = 45
|
||||||
DEPLOY_TIMEOUT = 10
|
DEPLOY_TIMEOUT = 10
|
||||||
@@ -63,6 +67,15 @@ pipeline {
|
|||||||
echo "Start Time: ${new Date()}"
|
echo "Start Time: ${new Date()}"
|
||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
|
|
||||||
|
// 根据分支选择部署目标
|
||||||
|
if (env.BRANCH_NAME == 'release/next') {
|
||||||
|
env.DEPLOY_HOST = env.STAGING_DEPLOY_HOST
|
||||||
|
env.DEPLOY_PATH = env.STAGING_DEPLOY_PATH
|
||||||
|
echo "📦 Deploy target: STAGING (${env.DEPLOY_HOST})"
|
||||||
|
} else {
|
||||||
|
echo "📦 Deploy target: PRODUCTION (${env.DEPLOY_HOST})"
|
||||||
|
}
|
||||||
|
|
||||||
// 【优化2】动态检测系统资源
|
// 【优化2】动态检测系统资源
|
||||||
detectSystemResources()
|
detectSystemResources()
|
||||||
}
|
}
|
||||||
@@ -261,7 +274,10 @@ pipeline {
|
|||||||
when {
|
when {
|
||||||
allOf {
|
allOf {
|
||||||
expression { env.SERVICES_TO_BUILD != '' }
|
expression { env.SERVICES_TO_BUILD != '' }
|
||||||
|
anyOf {
|
||||||
branch 'master'
|
branch 'master'
|
||||||
|
branch 'release/next'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
steps {
|
steps {
|
||||||
@@ -312,7 +328,10 @@ pipeline {
|
|||||||
when {
|
when {
|
||||||
allOf {
|
allOf {
|
||||||
expression { env.SERVICES_TO_BUILD != '' }
|
expression { env.SERVICES_TO_BUILD != '' }
|
||||||
|
anyOf {
|
||||||
branch 'master'
|
branch 'master'
|
||||||
|
branch 'release/next'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
steps {
|
steps {
|
||||||
@@ -790,12 +809,16 @@ def buildService(String service) {
|
|||||||
--build-arg SKIP_TESTS=true \\
|
--build-arg SKIP_TESTS=true \\
|
||||||
--build-arg MAVEN_OPTS="${env.MAVEN_OPTS}" \\
|
--build-arg MAVEN_OPTS="${env.MAVEN_OPTS}" \\
|
||||||
-t ${env.REGISTRY}/${service}:${env.IMAGE_TAG} \\
|
-t ${env.REGISTRY}/${service}:${env.IMAGE_TAG} \\
|
||||||
-t ${env.REGISTRY}/${service}:latest \\
|
|
||||||
.
|
.
|
||||||
|
|
||||||
# 推送镜像
|
# 推送带版本号的镜像
|
||||||
docker push ${env.REGISTRY}/${service}:${env.IMAGE_TAG}
|
docker push ${env.REGISTRY}/${service}:${env.IMAGE_TAG}
|
||||||
|
|
||||||
|
# 仅 master 分支推送 latest 标签
|
||||||
|
if [ "${env.BRANCH_NAME}" = "master" ]; then
|
||||||
|
docker tag ${env.REGISTRY}/${service}:${env.IMAGE_TAG} ${env.REGISTRY}/${service}:latest
|
||||||
docker push ${env.REGISTRY}/${service}:latest
|
docker push ${env.REGISTRY}/${service}:latest
|
||||||
|
fi
|
||||||
|
|
||||||
set +x
|
set +x
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user