chore: manually choose pre release docs?

Signed-off-by: discord9 <discord9@163.com>
This commit is contained in:
discord9
2025-11-12 11:33:20 +08:00
parent 8153068b89
commit aab2c7343a
3 changed files with 489 additions and 413 deletions

View File

@@ -15,6 +15,7 @@
*/
import * as core from "@actions/core";
import semver from "semver";
import {obtainClient} from "@/common";
interface RepoConfig {
@@ -57,18 +58,28 @@ const REPO_CONFIGS: Record<string, RepoConfig> = {
return ['bump-nightly-version.yml', version];
}
const parts = version.split('.');
if (parts.length !== 3) {
throw new Error('Invalid version format');
// Parse the version using semver library
const parsedVersion = semver.parse(version);
if (!parsedVersion) {
throw new Error(`Invalid semantic version format: ${version}`);
}
// If patch version (last number) is 0, it's a major version
// Return only major.minor version
if (parts[2] === '0') {
return ['bump-version.yml', `${parts[0]}.${parts[1]}`];
// 如果有预发布标识,抛出错误让人工判断
if (parsedVersion.prerelease && parsedVersion.prerelease.length > 0) {
throw new Error(
`预发布版本 "${version}" 需要人工判断使用哪个 workflow。\n` +
`请根据具体情况选择:\n` +
` - bump-version.yml (用于 major.minor 格式,如 ${parsedVersion.major}.${parsedVersion.minor})\n` +
` - bump-patch-version.yml (用于patch版本${parsedVersion.major}.${parsedVersion.minor}.${parsedVersion.patch})\n` +
`考虑因素包括: 这是第一个预发布版本吗?是否接近正式 release`
);
}
// 正式版本的原有逻辑
if (parsedVersion.patch === 0) {
return ['bump-version.yml', `${parsedVersion.major}.${parsedVersion.minor}`];
}
// Otherwise it's a patch version, use full version
return ['bump-patch-version.yml', version];
}
}

View File

@@ -13,7 +13,8 @@
"conventional-commits-parser": "^5.0.0",
"dayjs": "^1.11.11",
"dotenv": "^16.4.5",
"lodash": "^4.17.21"
"lodash": "^4.17.21",
"semver": "^7.7.3"
},
"devDependencies": {
"@types/conventional-commits-parser": "^5.0.0",

872
cyborg/pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff