fix(ci): video-server 仅在 release/next 构建,master 不触发
Some checks failed
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled

问题:CORE_SERVICES 包含 video-server,master 构建时尝试构建
       但代码只在 release/next,会导致 master 构建失败

修复:
- 引入 ACTIVE_SERVICES 根据分支动态设置服务列表
- master: 不含 video-server
- release/next: 含 video-server
- detectServicesToBuild 使用 ACTIVE_SERVICES 代替 CORE_SERVICES

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
lzh
2026-04-29 11:16:56 +08:00
parent 44bb89dbca
commit 28ff25b6b1

20
Jenkinsfile vendored
View File

@@ -75,25 +75,30 @@ pipeline {
echo "Workspace: ${env.WORKSPACE}"
echo "Start Time: ${new Date()}"
echo "=========================================="
// 根据分支选择部署目标
// 根据分支选择部署目标和服务列表
if (env.BRANCH_NAME == 'release/next') {
env.DEPLOY_HOST = env.RELEASE_DEPLOY_HOST
env.DEPLOY_PATH = env.RELEASE_DEPLOY_PATH
env.COMPOSE_FILE = 'docker-compose.release.yml'
env.CONTAINER_NAME_SUFFIX = '-release'
// Release 分支包含 video-server
env.ACTIVE_SERVICES = 'viewsh-gateway,viewsh-module-system-server,viewsh-module-infra-server,viewsh-module-iot-server,viewsh-module-iot-gateway,viewsh-module-ops-server,viewsh-module-video-server'
echo "📦 Deploy target: RELEASE (${env.DEPLOY_HOST}) using ${env.COMPOSE_FILE}"
} else if (env.BRANCH_NAME == 'master') {
env.DEPLOY_HOST = env.PROD_DEPLOY_HOST
env.DEPLOY_PATH = env.PROD_DEPLOY_PATH
env.COMPOSE_FILE = 'docker-compose.core.yml'
env.CONTAINER_NAME_SUFFIX = ''
// Master 分支不包含 video-server代码未同步
env.ACTIVE_SERVICES = 'viewsh-gateway,viewsh-module-system-server,viewsh-module-infra-server,viewsh-module-iot-server,viewsh-module-iot-gateway,viewsh-module-ops-server'
echo "📦 Deploy target: PRODUCTION (${env.DEPLOY_HOST}) using ${env.COMPOSE_FILE}"
} else {
// 防呆:未知分支不允许部署,避免 BRANCH_NAME 缺失时误伤
env.DEPLOY_HOST = ''
env.COMPOSE_FILE = ''
env.CONTAINER_NAME_SUFFIX = ''
env.ACTIVE_SERVICES = env.CORE_SERVICES // 其他分支用默认列表
echo "⚠️ Unknown branch '${env.BRANCH_NAME}' — build only, no deploy"
}
@@ -580,8 +585,11 @@ def checkIfDepsChanged(List<String> changedFiles) {
// 检测需要构建的服务
def detectServicesToBuild(List<String> changedFiles) {
// 使用分支对应的服务列表master 不含 video-server
def activeServices = env.ACTIVE_SERVICES ?: env.CORE_SERVICES
if (changedFiles.contains('all')) {
return env.CORE_SERVICES
return activeServices
}
def triggerAllFiles = ['pom.xml', 'viewsh-framework', 'viewsh-dependencies', 'Jenkinsfile', 'docker/']
@@ -590,11 +598,11 @@ def detectServicesToBuild(List<String> changedFiles) {
changedFile.startsWith(triggerFile) || changedFile == triggerFile
}
}) {
return env.CORE_SERVICES
return activeServices
}
def changedServices = []
def allServices = env.CORE_SERVICES.split(',')
def allServices = activeServices.split(',')
allServices.each { service ->
def modulePath = getModulePathForService(service)
@@ -605,7 +613,7 @@ def detectServicesToBuild(List<String> changedFiles) {
}
}
return changedServices.isEmpty() ? env.CORE_SERVICES : changedServices.join(',')
return changedServices.isEmpty() ? activeServices : changedServices.join(',')
}
// 检查依赖镜像是否存在