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

这个提交包含在:
XuqmGroup 2026-05-23 01:28:43 +08:00
父节点 780e6b8676
当前提交 d57a6417ca

33
Jenkinsfile vendored
查看文件

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