feat: 上架版本号按分支拆分,master / develop 各自独立
原来 master 与 develop 共用一条 release 轨,版本号和构建号绑在一起。 现改为每个上架分支各有一条轨道(轨道名即分支名),自测分支仍共用 feature 轨。 - 轨道记录新增 kind(release/feature),branch_track 存轨道名 - 旧的共用 release 轨及更早的单轨结构,加载时自动按上架分支拆开, 已用构建号原样复制,拆分后各分支从原来的号继续递增 - 构建号递增时跨上架轨取同一 App_Ver 的最大值 +1:App Store 的构建号 唯一性按 MARKETING_VERSION 全局判定,避免两分支同版本号时重号被拒 - 分支管理页轨道选择改为「上架(本分支独立版本号)/ 自测(共用)」, 打包设置页按上架分支分块填写版本号 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BJaZ913U5GVdTkYHiRpvDU
This commit is contained in:
@@ -610,7 +610,7 @@ async def generate_config(task_id: str, task, build_dir: Path) -> dict:
|
||||
|
||||
from ..routers.config import (
|
||||
load_config, _config_lock, get_track, get_track_name, track_build_ver,
|
||||
TRACK_RELEASE, _new_track,
|
||||
is_release_track, next_build_no, _ensure_track,
|
||||
)
|
||||
|
||||
config = load_config()
|
||||
@@ -621,29 +621,29 @@ async def generate_config(task_id: str, task, build_dir: Path) -> dict:
|
||||
scheme = schemes.get(task.scheme_id, {})
|
||||
|
||||
# 版本号由当前服务配置统一管理,不读取分支源码中的手动打包脚本。
|
||||
# 按分支所属轨道取版本号:master/develop 走 release 轨(上架用),feature 走 feature 轨(自测用),
|
||||
# 两条轨道的 App_Ver 各自独立。
|
||||
# 按分支所属轨道取版本号:每个上架分支(master、develop 等)一条独立轨道,
|
||||
# 自测分支共用 feature 轨,各轨道的 App_Ver 互不影响。
|
||||
track_name = get_track_name(config, task.branch)
|
||||
track = get_track(config, track_name)
|
||||
app_ver = track.get("app_ver") or "2.180.0"
|
||||
|
||||
# 构建号按版本号独立记录:build_map[app_ver] 为该版本号已用到的最大第四位。
|
||||
build_ver = track_build_ver(track)
|
||||
is_release = is_release_track(track)
|
||||
await log_streamer.emit(
|
||||
task_id,
|
||||
f"版本轨道: {track_name}({'上架,App_Store 打包自增' if track_name == TRACK_RELEASE else '自测,构建号不自增'})",
|
||||
f"版本轨道: {track_name}({'上架,App_Store 打包自增' if is_release else '自测,构建号不自增'})",
|
||||
)
|
||||
|
||||
# release 轨的 App_Store 打包,在该版本号自己的构建号上 +1
|
||||
# (回退到旧版本号也从它自己的最大值继续);feature 轨始终使用手动设定的构建号。
|
||||
if track_name == TRACK_RELEASE and task.build_type == "App_Store":
|
||||
# 上架轨的 App_Store 打包,在该版本号的构建号上 +1(回退到旧版本号也从它自己的最大值继续);
|
||||
# feature 轨始终使用手动设定的构建号。
|
||||
if is_release and task.build_type == "App_Store":
|
||||
async with _config_lock:
|
||||
config = load_config()
|
||||
tracks = config.setdefault("versions", {}).setdefault("tracks", {})
|
||||
track = tracks.setdefault(track_name, _new_track(app_ver))
|
||||
build_map = track.setdefault("build_map", {})
|
||||
n = int(build_map.get(app_ver, 0)) + 1
|
||||
build_map[app_ver] = n
|
||||
track = _ensure_track(config, track_name)
|
||||
track.setdefault("app_ver", app_ver)
|
||||
n = next_build_no(config["versions"]["tracks"], app_ver)
|
||||
track.setdefault("build_map", {})[app_ver] = n
|
||||
build_ver = f"{app_ver}.{n}"
|
||||
|
||||
from ..routers.config import save_config
|
||||
|
||||
Reference in New Issue
Block a user