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("没有选择任何模块,请至少勾选一个") } // 保存为逗号分隔的环境变量供后续阶段使用