From 141f5e3e30ebc9ab88fbd2c59036a8e960f60cd7 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Sat, 23 May 2026 01:28:41 +0800 Subject: [PATCH] =?UTF-8?q?feat(ci):=20=E6=A8=A1=E5=9D=97=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E6=94=B9=E4=B8=BA=E5=A4=8D=E9=80=89=E6=A1=86=EF=BC=8C?= =?UTF-8?q?=E6=AF=8F=E4=B8=AA=E6=A8=A1=E5=9D=97=E7=8B=AC=E7=AB=8B=E5=8B=BE?= =?UTF-8?q?=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 318fa12..f0454ee 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -16,12 +16,13 @@ pipeline { string(name: 'WEBVIEW_VERSION', defaultValue: '', description: 'sdk-webview 自定义版本号') string(name: 'LICENSE_VERSION', defaultValue: '', description: 'sdk-license 自定义版本号') - // 要构建并发布的模块列表,每行一个(空 = 全部) - string( - name: 'MODULES', - defaultValue: 'sdk-core\nsdk-im\nsdk-push\nsdk-update\nsdk-webview\nsdk-license', - description: '要构建并发布的模块列表,每行一个(空 = 全部)' - ) + // 要构建并发布的模块(勾选即发布) + booleanParam(name: 'MOD_CORE', defaultValue: true, description: '发布 sdk-core') + booleanParam(name: 'MOD_IM', defaultValue: true, description: '发布 sdk-im') + booleanParam(name: 'MOD_PUSH', defaultValue: true, description: '发布 sdk-push') + booleanParam(name: 'MOD_UPDATE', defaultValue: true, description: '发布 sdk-update') + booleanParam(name: 'MOD_WEBVIEW', defaultValue: true, description: '发布 sdk-webview') + booleanParam(name: 'MOD_LICENSE', defaultValue: true, description: '发布 sdk-license') booleanParam(name: 'RUN_TESTS', defaultValue: true, description: '是否运行自动化测试') booleanParam(name: 'PUBLISH', defaultValue: true, description: '是否发布到 Nexus') @@ -57,17 +58,18 @@ pipeline { .collect { k, v -> "-P${k}=${v}" } .join(' ') - // 解析要操作的模块列表 - def allModules = ['sdk-core', 'sdk-im', 'sdk-push', 'sdk-update', 'sdk-webview', 'sdk-license'] - def requestedRaw = params.MODULES?.trim() - def requested = requestedRaw - ? requestedRaw.split(/[\r\n]+/).collect { it.trim() }.findAll { it } - : allModules - - // 过滤出已知模块名 - def resolved = requested.findAll { allModules.contains(it) } + // 根据复选框收集要发布的模块 + def moduleChecks = [ + 'sdk-core': params.MOD_CORE, + 'sdk-im': params.MOD_IM, + 'sdk-push': params.MOD_PUSH, + 'sdk-update': params.MOD_UPDATE, + 'sdk-webview': params.MOD_WEBVIEW, + 'sdk-license': params.MOD_LICENSE, + ] + def resolved = moduleChecks.findAll { k, v -> v }.collect { k, v -> k } if (resolved.isEmpty()) { - error("MODULES param produced an empty list after filtering. Check spelling. Provided: ${requestedRaw}") + error("没有选择任何模块,请至少勾选一个") } // 保存为逗号分隔的环境变量供后续阶段使用