feat(ci): 模块选择改为复选框,每个模块独立勾选
这个提交包含在:
父节点
0bce3d4b0b
当前提交
141f5e3e30
34
Jenkinsfile
vendored
34
Jenkinsfile
vendored
@ -16,12 +16,13 @@ pipeline {
|
|||||||
string(name: 'WEBVIEW_VERSION', defaultValue: '', description: 'sdk-webview 自定义版本号')
|
string(name: 'WEBVIEW_VERSION', defaultValue: '', description: 'sdk-webview 自定义版本号')
|
||||||
string(name: 'LICENSE_VERSION', defaultValue: '', description: 'sdk-license 自定义版本号')
|
string(name: 'LICENSE_VERSION', defaultValue: '', description: 'sdk-license 自定义版本号')
|
||||||
|
|
||||||
// 要构建并发布的模块列表,每行一个(空 = 全部)
|
// 要构建并发布的模块(勾选即发布)
|
||||||
string(
|
booleanParam(name: 'MOD_CORE', defaultValue: true, description: '发布 sdk-core')
|
||||||
name: 'MODULES',
|
booleanParam(name: 'MOD_IM', defaultValue: true, description: '发布 sdk-im')
|
||||||
defaultValue: 'sdk-core\nsdk-im\nsdk-push\nsdk-update\nsdk-webview\nsdk-license',
|
booleanParam(name: 'MOD_PUSH', defaultValue: true, description: '发布 sdk-push')
|
||||||
description: '要构建并发布的模块列表,每行一个(空 = 全部)'
|
booleanParam(name: 'MOD_UPDATE', defaultValue: true, description: '发布 sdk-update')
|
||||||
)
|
booleanParam(name: 'MOD_WEBVIEW', defaultValue: true, description: '发布 sdk-webview')
|
||||||
|
booleanParam(name: 'MOD_LICENSE', defaultValue: true, description: '发布 sdk-license')
|
||||||
|
|
||||||
booleanParam(name: 'RUN_TESTS', defaultValue: true, description: '是否运行自动化测试')
|
booleanParam(name: 'RUN_TESTS', defaultValue: true, description: '是否运行自动化测试')
|
||||||
booleanParam(name: 'PUBLISH', defaultValue: true, description: '是否发布到 Nexus')
|
booleanParam(name: 'PUBLISH', defaultValue: true, description: '是否发布到 Nexus')
|
||||||
@ -57,17 +58,18 @@ pipeline {
|
|||||||
.collect { k, v -> "-P${k}=${v}" }
|
.collect { k, v -> "-P${k}=${v}" }
|
||||||
.join(' ')
|
.join(' ')
|
||||||
|
|
||||||
// 解析要操作的模块列表
|
// 根据复选框收集要发布的模块
|
||||||
def allModules = ['sdk-core', 'sdk-im', 'sdk-push', 'sdk-update', 'sdk-webview', 'sdk-license']
|
def moduleChecks = [
|
||||||
def requestedRaw = params.MODULES?.trim()
|
'sdk-core': params.MOD_CORE,
|
||||||
def requested = requestedRaw
|
'sdk-im': params.MOD_IM,
|
||||||
? requestedRaw.split(/[\r\n]+/).collect { it.trim() }.findAll { it }
|
'sdk-push': params.MOD_PUSH,
|
||||||
: allModules
|
'sdk-update': params.MOD_UPDATE,
|
||||||
|
'sdk-webview': params.MOD_WEBVIEW,
|
||||||
// 过滤出已知模块名
|
'sdk-license': params.MOD_LICENSE,
|
||||||
def resolved = requested.findAll { allModules.contains(it) }
|
]
|
||||||
|
def resolved = moduleChecks.findAll { k, v -> v }.collect { k, v -> k }
|
||||||
if (resolved.isEmpty()) {
|
if (resolved.isEmpty()) {
|
||||||
error("MODULES param produced an empty list after filtering. Check spelling. Provided: ${requestedRaw}")
|
error("没有选择任何模块,请至少勾选一个")
|
||||||
}
|
}
|
||||||
|
|
||||||
// 保存为逗号分隔的环境变量供后续阶段使用
|
// 保存为逗号分隔的环境变量供后续阶段使用
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户