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

这个提交包含在:
XuqmGroup 2026-05-23 01:28:42 +08:00
父节点 174555fa53
当前提交 ca73202b7d

28
Jenkinsfile vendored
查看文件

@ -27,9 +27,13 @@ pipeline {
string(name: 'XWEBVIEW_VERSION',defaultValue: '', description: '@xuqm/rn-xwebview 自定义版本号')
string(name: 'LICENSE_VERSION', defaultValue: '', description: '@xuqm/rn-license 自定义版本号')
// ── 模块选择(每行一个)──────────────────────────────────────────
text(name: 'MODULES', defaultValue: 'common\nim\npush\nupdate\nxwebview\nlicense',
description: '要发布的模块,每行一个。可选: common im push update xwebview license')
// ── 模块选择(勾选即发布)──────────────────────────────────────────
booleanParam(name: 'MOD_COMMON', defaultValue: true, description: '发布 @xuqm/rn-common')
booleanParam(name: 'MOD_IM', defaultValue: true, description: '发布 @xuqm/rn-im')
booleanParam(name: 'MOD_PUSH', defaultValue: true, description: '发布 @xuqm/rn-push')
booleanParam(name: 'MOD_UPDATE', defaultValue: true, description: '发布 @xuqm/rn-update')
booleanParam(name: 'MOD_XWEBVIEW', defaultValue: true, description: '发布 @xuqm/rn-xwebview')
booleanParam(name: 'MOD_LICENSE', defaultValue: true, description: '发布 @xuqm/rn-license')
}
stages {
@ -49,8 +53,7 @@ pipeline {
returnStdout: true
).trim()
// ── 解析选中的模块 ──────────────────────────────────────────
// 映射:参数名 → [目录, npm包名, 版本参数值]
// ── 根据复选框收集选中的模块 ──────────────────────────────
def moduleMap = [
common: ['packages/common', '@xuqm/rn-common', params.COMMON_VERSION],
im: ['packages/im', '@xuqm/rn-im', params.IM_VERSION],
@ -60,13 +63,18 @@ pipeline {
license: ['packages/license', '@xuqm/rn-license', params.LICENSE_VERSION],
]
def requestedModules = params.MODULES
.split(/\r?\n/)
.collect { it.trim() }
.findAll { it && moduleMap.containsKey(it) }
def moduleChecks = [
'common': params.MOD_COMMON,
'im': params.MOD_IM,
'push': params.MOD_PUSH,
'update': params.MOD_UPDATE,
'xwebview': params.MOD_XWEBVIEW,
'license': params.MOD_LICENSE,
]
def requestedModules = moduleChecks.findAll { k, v -> v }.collect { k, v -> k }
if (requestedModules.isEmpty()) {
error "MODULES param is empty or contains no valid module names."
error "没有选择任何模块,请至少勾选一个"
}
// 保存为逗号分隔的环境变量供后续阶段使用