feat(ci): 模块选择改为复选框,每个模块独立勾选
这个提交包含在:
父节点
780e6b8676
当前提交
d57a6417ca
33
Jenkinsfile
vendored
33
Jenkinsfile
vendored
@ -17,9 +17,14 @@ pipeline {
|
|||||||
string(name: 'FILE_VERSION', defaultValue: '', description: 'XuqmFileSDK 自定义版本号')
|
string(name: 'FILE_VERSION', defaultValue: '', description: 'XuqmFileSDK 自定义版本号')
|
||||||
string(name: 'WEBVIEW_VERSION', defaultValue: '', description: 'XuqmWebViewSDK 自定义版本号')
|
string(name: 'WEBVIEW_VERSION', defaultValue: '', description: 'XuqmWebViewSDK 自定义版本号')
|
||||||
|
|
||||||
// ── 模块选择 ────────────────────────────────────────────────────────
|
// ── 模块选择(勾选即发布)─────────────────────────────────────────
|
||||||
text(name: 'MODULES', defaultValue: 'core\nim\npush\nupdate\nlicense\nfile\nwebview',
|
booleanParam(name: 'MOD_CORE', defaultValue: true, description: '发布 XuqmCoreSDK')
|
||||||
description: '要发布的模块,每行一个。可选: core im push update license file webview')
|
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: '是否运行单元测试')
|
booleanParam(name: 'RUN_TESTS', defaultValue: true, description: '是否运行单元测试')
|
||||||
@ -50,15 +55,19 @@ pipeline {
|
|||||||
script {
|
script {
|
||||||
env.GIT_COMMIT_SHORT = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim()
|
env.GIT_COMMIT_SHORT = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim()
|
||||||
|
|
||||||
// ── 解析选中的模块 ──────────────────────────────────────
|
// ── 根据复选框收集选中的模块 ──────────────────────────
|
||||||
def allValid = ['core', 'im', 'push', 'update', 'license', 'file', 'webview']
|
def moduleChecks = [
|
||||||
def requested = params.MODULES
|
'core': params.MOD_CORE,
|
||||||
.tokenize('\n, ')
|
'im': params.MOD_IM,
|
||||||
.collect { it.trim().toLowerCase() }
|
'push': params.MOD_PUSH,
|
||||||
.findAll { it }
|
'update': params.MOD_UPDATE,
|
||||||
def invalid = requested - allValid
|
'license': params.MOD_LICENSE,
|
||||||
if (invalid) {
|
'file': params.MOD_FILE,
|
||||||
error "Unknown module(s): ${invalid}. Valid values: ${allValid}"
|
'webview': params.MOD_WEBVIEW,
|
||||||
|
]
|
||||||
|
def requested = moduleChecks.findAll { k, v -> v }.collect { k, v -> k }
|
||||||
|
if (requested.isEmpty()) {
|
||||||
|
error "没有选择任何模块,请至少勾选一个"
|
||||||
}
|
}
|
||||||
env.SELECTED_MODULES = requested.join(',')
|
env.SELECTED_MODULES = requested.join(',')
|
||||||
echo "Selected modules: ${env.SELECTED_MODULES}"
|
echo "Selected modules: ${env.SELECTED_MODULES}"
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户