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>
这个提交包含在:
父节点
3f110526f0
当前提交
9a4e6c0091
32
Jenkinsfile
vendored
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 """
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户