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: '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}"