From d57a6417cabe0f99e6c2f5f213e27c9e5da3122e Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Sat, 23 May 2026 01:28:43 +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 | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) 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}"