diff --git a/Jenkinsfile b/Jenkinsfile index d6c2c34..e982842 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -17,9 +17,14 @@ pipeline { string(name: 'FILE_VERSION', defaultValue: '', description: 'XuqmFileSDK 自定义版本号') string(name: 'WEBVIEW_VERSION', defaultValue: '', description: 'XuqmWebViewSDK 自定义版本号') - // ── 模块选择 ──────────────────────────────────────────────────────── - text(name: 'MODULES', defaultValue: 'core\nim\npush\nupdate\nlicense\nfile\nwebview', - description: '要发布的模块,每行一个。可选: core im push update license file webview') + // ── 模块选择(勾选即发布)───────────────────────────────────────── + booleanParam(name: 'MOD_CORE', defaultValue: true, description: '发布 XuqmCoreSDK') + booleanParam(name: 'MOD_IM', defaultValue: true, description: '发布 XuqmImSDK') + booleanParam(name: 'MOD_PUSH', defaultValue: true, description: '发布 XuqmPushSDK') + booleanParam(name: 'MOD_UPDATE', defaultValue: true, description: '发布 XuqmUpdateSDK') + booleanParam(name: 'MOD_LICENSE', defaultValue: true, description: '发布 XuqmLicenseSDK') + booleanParam(name: 'MOD_FILE', defaultValue: true, description: '发布 XuqmFileSDK') + booleanParam(name: 'MOD_WEBVIEW', defaultValue: true, description: '发布 XuqmWebViewSDK') // ── 构建选项 ──────────────────────────────────────────────────────── booleanParam(name: 'RUN_TESTS', defaultValue: true, description: '是否运行单元测试') @@ -50,15 +55,19 @@ pipeline { script { env.GIT_COMMIT_SHORT = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim() - // ── 解析选中的模块 ────────────────────────────────────── - def allValid = ['core', 'im', 'push', 'update', 'license', 'file', 'webview'] - def requested = params.MODULES - .tokenize('\n, ') - .collect { it.trim().toLowerCase() } - .findAll { it } - def invalid = requested - allValid - if (invalid) { - error "Unknown module(s): ${invalid}. Valid values: ${allValid}" + // ── 根据复选框收集选中的模块 ────────────────────────── + def moduleChecks = [ + 'core': params.MOD_CORE, + 'im': params.MOD_IM, + 'push': params.MOD_PUSH, + 'update': params.MOD_UPDATE, + 'license': params.MOD_LICENSE, + 'file': params.MOD_FILE, + 'webview': params.MOD_WEBVIEW, + ] + def requested = moduleChecks.findAll { k, v -> v }.collect { k, v -> k } + if (requested.isEmpty()) { + error "没有选择任何模块,请至少勾选一个" } env.SELECTED_MODULES = requested.join(',') echo "Selected modules: ${env.SELECTED_MODULES}"