diff --git a/Jenkinsfile b/Jenkinsfile index f633fbe..3ac52cd 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -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" + } } } }