feat(jenkins): 添加 sdk-bugcollect-plugin 模块支持
- 新增 MOD_BUGCOLLECT_PLUGIN 参数用于控制插件发布 - 配置环境变量映射以支持插件模块 - 实现版本属性共享机制,插件与 bugcollect 模块共用版本号 - 优化版本发布逻辑,支持多模块统一版本管理 - 区分构建任务,插件模块无需执行 assembleRelease 任务 - 添加构建流程控制,避免空模块构建报错
这个提交包含在:
父节点
ae2ba91e57
当前提交
4e422aa1c1
29
Jenkinsfile
vendored
29
Jenkinsfile
vendored
@ -18,6 +18,7 @@ pipeline {
|
||||
booleanParam(name: 'MOD_WEBVIEW', defaultValue: false, description: '发布 sdk-webview')
|
||||
booleanParam(name: 'MOD_LICENSE', defaultValue: false, description: '发布 sdk-license')
|
||||
booleanParam(name: 'MOD_BUGCOLLECT', defaultValue: false, description: '发布 sdk-bugcollect')
|
||||
booleanParam(name: 'MOD_BUGCOLLECT_PLUGIN', defaultValue: false, description: '发布 sdk-bugcollect-plugin (Gradle 插件)')
|
||||
}
|
||||
|
||||
environment {
|
||||
@ -42,6 +43,7 @@ pipeline {
|
||||
'sdk-webview': params.MOD_WEBVIEW,
|
||||
'sdk-license': params.MOD_LICENSE,
|
||||
'sdk-bugcollect': params.MOD_BUGCOLLECT,
|
||||
'sdk-bugcollect-plugin': params.MOD_BUGCOLLECT_PLUGIN,
|
||||
]
|
||||
def resolved = moduleChecks.findAll { k, v -> v }.collect { k, v -> k }
|
||||
if (resolved.isEmpty()) {
|
||||
@ -85,11 +87,17 @@ pipeline {
|
||||
}
|
||||
|
||||
def modules = env.PUBLISH_MODULES.split(',').toList()
|
||||
// sdk-bugcollect-plugin 与 sdk-bugcollect 共享 SDK_BUGCOLLECT_VERSION
|
||||
def propNameByModule = modules.collectEntries { mod ->
|
||||
def propName = mod == 'sdk-bugcollect-plugin' ? 'SDK_BUGCOLLECT_VERSION' : "SDK_${mod.replace('sdk-', '').toUpperCase()}_VERSION"
|
||||
[mod, propName]
|
||||
}
|
||||
def uniquePropNames = propNameByModule.values().toUnique()
|
||||
|
||||
def versionArgs = []
|
||||
def publishedVersions = []
|
||||
|
||||
for (mod in modules) {
|
||||
def propName = "SDK_${mod.replace('sdk-', '').toUpperCase()}_VERSION"
|
||||
for (propName in uniquePropNames) {
|
||||
def currentVer = getProp(propName) ?: getProp('PUBLISH_VERSION') ?: '0.1.0'
|
||||
// 去掉已有的 -SNAPSHOT 后缀,取基础版本号
|
||||
def baseVer = currentVer.replaceAll(/-SNAPSHOT$/, '')
|
||||
@ -98,16 +106,17 @@ pipeline {
|
||||
if (params.SNAPSHOT) {
|
||||
// SNAPSHOT:基础版本 + -SNAPSHOT,不写回 gradle.properties
|
||||
newVer = baseVer + '-SNAPSHOT'
|
||||
echo "SNAPSHOT: ${mod} → ${newVer}"
|
||||
echo "SNAPSHOT: ${propName} → ${newVer}"
|
||||
} else {
|
||||
// Release:升级版本号,写回 gradle.properties
|
||||
newVer = bumpVersion(baseVer)
|
||||
setProp(propName, newVer)
|
||||
echo "Release: ${mod}: ${currentVer} → ${newVer}"
|
||||
echo "Release: ${propName}: ${currentVer} → ${newVer}"
|
||||
}
|
||||
|
||||
versionArgs.add("-P${propName}=${newVer}")
|
||||
publishedVersions.add("${mod}: ${currentVer} → ${newVer}")
|
||||
def moduleNames = propNameByModule.findAll { it.value == propName }.collect { it.key }.join(',')
|
||||
publishedVersions.add("${moduleNames}: ${currentVer} → ${newVer}")
|
||||
}
|
||||
|
||||
if (!params.SNAPSHOT) {
|
||||
@ -124,8 +133,14 @@ pipeline {
|
||||
steps {
|
||||
script {
|
||||
def modules = env.PUBLISH_MODULES.split(',').toList()
|
||||
def moduleTasks = modules.collect { ":${it}:assembleRelease" }.join(' ')
|
||||
bat "gradlew.bat ${moduleTasks} ${env.VERSION_ARGS} --no-daemon"
|
||||
// sdk-bugcollect-plugin 是 JVM Gradle 插件,没有 assembleRelease 任务
|
||||
def aarModules = modules.findAll { it != 'sdk-bugcollect-plugin' }
|
||||
if (aarModules.isEmpty()) {
|
||||
echo "没有 AAR 模块需要构建"
|
||||
} else {
|
||||
def moduleTasks = aarModules.collect { ":${it}:assembleRelease" }.join(' ')
|
||||
bat "gradlew.bat ${moduleTasks} ${env.VERSION_ARGS} --no-daemon"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户