feat(builder): append YYYYMMDD to test versions
This commit is contained in:
@@ -74,17 +74,20 @@ manage-release,不猜测下一个正式 SemVer。正式 tag 由 manage-release
|
||||
| 判定 | 规范版本 | DEB 文件 | Docker tag |
|
||||
| --- | --- | --- | --- |
|
||||
| HEAD exact-match 稳定 tag `v1.4.2` | `1.4.2` | `name_1.4.2_<arch>.deb` | `1.4.2` |
|
||||
| 其它 commit;祖先最近稳定 tag `v1.4.2` | `1.4.2~<branch>.<n>+g<sha>` | `name_1.4.2~<branch>.<n>+g<sha>_<arch>.deb` | `1.4.2-<branch>.<n>.g<sha>` |
|
||||
| 祖先中没有稳定 tag | `0.0.0~<branch>+g<sha>` | 同上替换规范版本 | 同上映射 |
|
||||
| 其它 commit;祖先最近稳定 tag `v1.4.2` | `1.4.2~<date>.<branch>.<n>+g<sha>` | `name_1.4.2~<date>.<branch>.<n>+g<sha>_<arch>.deb` | `1.4.2-<date>.<branch>.<n>.g<sha>` |
|
||||
| 祖先中没有稳定 tag | `0.0.0~<date>.<branch>+g<sha>` | 同上替换规范版本 | 同上映射 |
|
||||
|
||||
测试与正式进入同一 apt / Docker 仓库。测试 DEB 必须用 `~`,使
|
||||
`1.4.2~…` < `1.4.2`,`apt upgrade` 不会装上测试包。Docker tag 不得含
|
||||
`~`、`/`、`:`,由规范版本把 `~` → `-`、`+g` → `.g`。
|
||||
`1.4.2~…` < `1.4.2`,`apt upgrade` 不会装上测试包。日期必须写在 `~`
|
||||
之后,不能写成 `1.4.2.<date>` / `1.4.2+<date>`,否则测试包会大于正式
|
||||
包。Docker tag 不得含 `~`、`/`、`:`,由规范版本把 `~` → `-`、`+g` → `.g`。
|
||||
|
||||
`<date>`:构建日 `YYYYMMDD`。已设 `SOURCE_DATE_EPOCH` 时用该时刻的 UTC
|
||||
日期,否则用本机当前日期。正式 `X.Y.Z` 不加日期。
|
||||
`<branch>`:`git rev-parse --abbrev-ref HEAD`,detached 时用
|
||||
`BUILD_BRANCH` / `CI_COMMIT_BRANCH` / `GITHUB_REF_NAME`,再没有则
|
||||
`detached`。清洗:小写;`/`、`_` → `-`;去掉非 `[a-z0-9-]`;压缩连续
|
||||
`-`;过长截断(给 base、距离、SHA 留位置;Docker tag 上限 128)。
|
||||
`-`;过长截断(给 base、日期、距离、SHA 留位置;Docker tag 上限 128)。
|
||||
`<n>` 为基线 tag 到 HEAD 的 commit 数;`<sha>` 为 7 位短哈希。不要把
|
||||
`--dirty` 写入版本;脏树发布仍走既有门禁。显式 `VERSION=` / `IMAGE_TAG=`
|
||||
可覆盖推导,但不得把非 exact-match 的 commit 标成正式 `X.Y.Z`。
|
||||
|
||||
Reference in New Issue
Block a user