feat(ci): 模块选择改为复选框,每个模块独立勾选

这个提交包含在:
XuqmGroup 2026-05-23 01:28:41 +08:00
父节点 0bce3d4b0b
当前提交 141f5e3e30

34
Jenkinsfile vendored
查看文件

@ -16,12 +16,13 @@ pipeline {
string(name: 'WEBVIEW_VERSION', defaultValue: '', description: 'sdk-webview 自定义版本号') string(name: 'WEBVIEW_VERSION', defaultValue: '', description: 'sdk-webview 自定义版本号')
string(name: 'LICENSE_VERSION', defaultValue: '', description: 'sdk-license 自定义版本号') string(name: 'LICENSE_VERSION', defaultValue: '', description: 'sdk-license 自定义版本号')
// 要构建并发布的模块列表,每行一个(空 = 全部) // 要构建并发布的模块(勾选即发布)
string( booleanParam(name: 'MOD_CORE', defaultValue: true, description: '发布 sdk-core')
name: 'MODULES', booleanParam(name: 'MOD_IM', defaultValue: true, description: '发布 sdk-im')
defaultValue: 'sdk-core\nsdk-im\nsdk-push\nsdk-update\nsdk-webview\nsdk-license', booleanParam(name: 'MOD_PUSH', defaultValue: true, description: '发布 sdk-push')
description: '要构建并发布的模块列表,每行一个(空 = 全部)' 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: 'RUN_TESTS', defaultValue: true, description: '是否运行自动化测试')
booleanParam(name: 'PUBLISH', defaultValue: true, description: '是否发布到 Nexus') booleanParam(name: 'PUBLISH', defaultValue: true, description: '是否发布到 Nexus')
@ -57,17 +58,18 @@ pipeline {
.collect { k, v -> "-P${k}=${v}" } .collect { k, v -> "-P${k}=${v}" }
.join(' ') .join(' ')
// 解析要操作的模块列表 // 根据复选框收集要发布的模块
def allModules = ['sdk-core', 'sdk-im', 'sdk-push', 'sdk-update', 'sdk-webview', 'sdk-license'] def moduleChecks = [
def requestedRaw = params.MODULES?.trim() 'sdk-core': params.MOD_CORE,
def requested = requestedRaw 'sdk-im': params.MOD_IM,
? requestedRaw.split(/[\r\n]+/).collect { it.trim() }.findAll { it } 'sdk-push': params.MOD_PUSH,
: allModules 'sdk-update': params.MOD_UPDATE,
'sdk-webview': params.MOD_WEBVIEW,
// 过滤出已知模块名 'sdk-license': params.MOD_LICENSE,
def resolved = requested.findAll { allModules.contains(it) } ]
def resolved = moduleChecks.findAll { k, v -> v }.collect { k, v -> k }
if (resolved.isEmpty()) { if (resolved.isEmpty()) {
error("MODULES param produced an empty list after filtering. Check spelling. Provided: ${requestedRaw}") error("没有选择任何模块,请至少勾选一个")
} }
// 保存为逗号分隔的环境变量供后续阶段使用 // 保存为逗号分隔的环境变量供后续阶段使用