From 9a4e6c0091a4b96a024a4b4bd1520a6f3c42dab8 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Tue, 16 Jun 2026 11:13:27 +0800 Subject: [PATCH] =?UTF-8?q?ci:=20Jenkinsfile=E6=94=AF=E6=8C=81SNAPSHOT?= =?UTF-8?q?=E5=8F=91=E5=B8=83=E6=A8=A1=E5=BC=8F=20+=20=E6=96=B0=E5=A2=9Esd?= =?UTF-8?q?k-log=E6=A8=A1=E5=9D=97=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增SNAPSHOT参数:版本号追加-SNAPSHOT后缀,不修改gradle.properties,不commit - 正式Release模式行为不变(升级版本并commit) - Commit Version Bump阶段加when条件(SNAPSHOT时跳过) - 模块列表新增MOD_LOG(sdk-log) Co-Authored-By: Claude Sonnet 4.6 --- Jenkinsfile | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e9913f3..9356ee1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -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 """