diff --git a/Jenkinsfile b/Jenkinsfile index 43c0f555..447ca2fe 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -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 changedFiles) { // 检测需要构建的服务 def detectServicesToBuild(List 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 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 changedFiles) { } } - return changedServices.isEmpty() ? env.CORE_SERVICES : changedServices.join(',') + return changedServices.isEmpty() ? activeServices : changedServices.join(',') } // 检查依赖镜像是否存在