ci: Jenkinsfile支持SNAPSHOT发布模式 + 新增sdk-log模块支持

- 新增SNAPSHOT参数:版本号追加-SNAPSHOT后缀,不修改gradle.properties,不commit
- 正式Release模式行为不变(升级版本并commit)
- Commit Version Bump阶段加when条件(SNAPSHOT时跳过)
- 模块列表新增MOD_LOG(sdk-log)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
这个提交包含在:
XuqmGroup 2026-06-16 11:13:27 +08:00
父节点 3f110526f0
当前提交 9a4e6c0091

32
Jenkinsfile vendored
查看文件

@ -2,9 +2,13 @@ pipeline {
agent any
parameters {
// ── 版本升级策略 ─────────────────────────────────────────────────────
// ── 发布模式 ─────────────────────────────────────────────────────────
booleanParam(name: 'SNAPSHOT', defaultValue: true,
description: '勾选=发布 SNAPSHOT 版本(追加 -SNAPSHOT 后缀,不修改 gradle.properties,不 commit;不勾选=正式 Release升级版本号并 commit')
// ── 版本升级策略(仅正式 Release 时生效)────────────────────────────
choice(name: 'VERSION_BUMP', choices: ['patch', 'minor', 'major'],
description: '版本升级策略: major(1.0.0→2.0.0), minor(1.0.0→1.1.0), patch(1.0.0→1.0.1)')
description: '版本升级策略: major(1.0.0→2.0.0), minor(1.0.0→1.1.0), patch(1.0.0→1.0.1)SNAPSHOT 模式下忽略)')
// 要构建并发布的模块(勾选即发布)
booleanParam(name: 'MOD_CORE', defaultValue: false, description: '发布 sdk-core')
@ -13,6 +17,7 @@ pipeline {
booleanParam(name: 'MOD_UPDATE', defaultValue: false, description: '发布 sdk-update')
booleanParam(name: 'MOD_WEBVIEW', defaultValue: false, description: '发布 sdk-webview')
booleanParam(name: 'MOD_LICENSE', defaultValue: false, description: '发布 sdk-license')
booleanParam(name: 'MOD_LOG', defaultValue: false, description: '发布 sdk-log')
}
environment {
@ -36,6 +41,7 @@ pipeline {
'sdk-update': params.MOD_UPDATE,
'sdk-webview': params.MOD_WEBVIEW,
'sdk-license': params.MOD_LICENSE,
'sdk-log': params.MOD_LOG,
]
def resolved = moduleChecks.findAll { k, v -> v }.collect { k, v -> k }
if (resolved.isEmpty()) {
@ -85,15 +91,28 @@ pipeline {
for (mod in modules) {
def propName = "SDK_${mod.replace('sdk-', '').toUpperCase()}_VERSION"
def currentVer = getProp(propName) ?: getProp('PUBLISH_VERSION') ?: '0.1.0'
def newVer = bumpVersion(currentVer)
// 去掉已有的 -SNAPSHOT 后缀,取基础版本号
def baseVer = currentVer.replaceAll(/-SNAPSHOT$/, '')
def newVer
if (params.SNAPSHOT) {
// SNAPSHOT基础版本 + -SNAPSHOT,不写回 gradle.properties
newVer = baseVer + '-SNAPSHOT'
echo "SNAPSHOT: ${mod} → ${newVer}"
} else {
// Release升级版本号,写回 gradle.properties
newVer = bumpVersion(baseVer)
setProp(propName, newVer)
echo "Release: ${mod}: ${currentVer} → ${newVer}"
}
setProp(propName, newVer)
versionArgs.add("-P${propName}=${newVer}")
publishedVersions.add("${mod}: ${currentVer} → ${newVer}")
echo "${mod} version: ${currentVer} → ${newVer}"
}
writeFile(file: 'gradle.properties', text: propsText)
if (!params.SNAPSHOT) {
writeFile(file: 'gradle.properties', text: propsText)
}
env.VERSION_ARGS = versionArgs.join(' ')
env.PUBLISHED_VERSIONS = publishedVersions.join('\n')
echo "VERSION_ARGS: ${env.VERSION_ARGS}"
@ -123,6 +142,7 @@ pipeline {
}
stage('Commit Version Bump') {
when { expression { !params.SNAPSHOT } }
steps {
script {
bat """