fix(builder): bump test versions to next patch
After a stable tag vX.Y.Z, untagged commits now produce X.Y.(Z+1)~date.branch.n+gSHA so test DEBs sort above the last official release and still below the next official X.Y.(Z+1).
This commit is contained in:
+13
-10
@@ -84,23 +84,26 @@ Docker registry/ns/foo:1.4.2
|
||||
|
||||
### 测试(其它任何 commit)
|
||||
|
||||
基线 = 祖先上最近的那颗稳定 tag(没有则为 `0.0.0`),再加上构建日
|
||||
`YYYYMMDD`、清洗后的分支名、相对距离、短 SHA。测试与正式进**同一个**
|
||||
apt / Docker 仓库,所以 DEB 必须用 `~`,保证测试包不会 `apt upgrade`
|
||||
盖住正式包。日期写在 `~` 后面,这样 `1.4.2~20260908…` 仍小于 `1.4.2`。
|
||||
基线 = 祖先上最近的那颗稳定 tag(没有则为 `0.0.0`)。有基线时测试号把
|
||||
patch 机械 +1,再加构建日 `YYYYMMDD`、清洗后的分支名、相对距离、短 SHA。
|
||||
这是排序键,不是在选定下一正式 SemVer。测试与正式进**同一个** apt /
|
||||
Docker 仓库,所以 DEB 必须用 `~` 挂在下一 patch 上:`1.4.2` <
|
||||
`1.4.3~20260908…` < `1.4.3`。已装上一正式版的机器可以升到 bugfix 测试包;
|
||||
同号正式版仍盖住测试。
|
||||
|
||||
分支 `feat/login-v2`,相对 `v1.4.2` 第 7 个 commit,SHA `abc1234`,
|
||||
构建日 `20260908`:
|
||||
|
||||
```text
|
||||
规范 / DEB 1.4.2~20260908.feat-login-v2.7+gabc1234
|
||||
文件名 foo_1.4.2~20260908.feat-login-v2.7+gabc1234_amd64.deb
|
||||
Docker registry/ns/foo:1.4.2-20260908.feat-login-v2.7.gabc1234
|
||||
规范 / DEB 1.4.3~20260908.feat-login-v2.7+gabc1234
|
||||
文件名 foo_1.4.3~20260908.feat-login-v2.7+gabc1234_amd64.deb
|
||||
Docker registry/ns/foo:1.4.3-20260908.feat-login-v2.7.gabc1234
|
||||
```
|
||||
|
||||
Docker tag 由规范版本映射:`~` → `-`,`+g` → `.g`(Docker 不允许 `~`)。
|
||||
安装测试包必须显式指定版本或完整 tag,不能靠无参 `apt upgrade`。
|
||||
构建日取本机当前日期;设了 `SOURCE_DATE_EPOCH` 则用该时刻的 UTC 日期。
|
||||
无参 `apt upgrade` 会从上一正式版升到下一 patch 的测试包,但不会盖住同号
|
||||
正式包。生产若不能自动吃到测试包,应拆仓库/组件。构建日取本机当前日期;
|
||||
设了 `SOURCE_DATE_EPOCH` 则用该时刻的 UTC 日期。
|
||||
|
||||
### 分支名清洗
|
||||
|
||||
@@ -132,7 +135,7 @@ Docker 只有你点名镜像时才走。token 不会写进输出、提交或回
|
||||
- 初始化:`check.py --ready` 的构建项 PASS。只缺发布键算部分完成,仍可构建、不能上传。
|
||||
- 构建:产物路径、规范版本、架构与 `make -f makefile.builder version` 一致。
|
||||
- 发布:HTTP 成功或远端 digest 对得上;回复里有包名或镜像引用、SHA-256 / digest、源 commit。
|
||||
- 测试包不会通过无参 `apt upgrade` 盖住正式包。
|
||||
- 测试包不会通过无参 `apt upgrade` 盖住同号正式包;会作为下一 patch 候选盖住上一正式包。
|
||||
|
||||
## 脚本一览
|
||||
|
||||
|
||||
Reference in New Issue
Block a user