feat(ci): 模块选择改为复选框,每个模块独立勾选
这个提交包含在:
父节点
174555fa53
当前提交
ca73202b7d
28
Jenkinsfile
vendored
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 "没有选择任何模块,请至少勾选一个"
|
||||
}
|
||||
|
||||
// 保存为逗号分隔的环境变量供后续阶段使用
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户