fix(deploy): 系统更新 - 非正式镜像标签可在线更新到正式版
sha-* 等非正式标签不再被字典序判成比 vX.Y.Z 更新;健康检查对非正式目标版本只确认服务就绪;管理后台更新页并排展示当前运行与最新发布版本并标注非正式版本
This commit is contained in:
1 parent
8d99e0adbb
commit
7d3f4ffc50
8 files changed
+99
-11
No files matched your search
@@ -10,12 +10,28 @@ type versionPart struct {
|
||||
pre []string
|
||||
}
|
||||
|
||||
func IsReleaseVersion(raw string) bool {
|
||||
_, ok := parseVersion(raw)
|
||||
return ok
|
||||
}
|
||||
|
||||
func CompareVersions(left, right string) int {
|
||||
a, aok := parseVersion(left)
|
||||
b, bok := parseVersion(right)
|
||||
if !aok || !bok {
|
||||
return strings.Compare(strings.TrimSpace(left), strings.TrimSpace(right))
|
||||
if aok && bok {
|
||||
return compareParsedVersions(a, b)
|
||||
}
|
||||
// sha-5509b17、latest 等非正式标签不能按字典序和 v1.5.0 比,否则会被当成更新而不让升级。
|
||||
if !aok && bok {
|
||||
return -1
|
||||
}
|
||||
if aok && !bok {
|
||||
return 1
|
||||
}
|
||||
return strings.Compare(strings.TrimSpace(left), strings.TrimSpace(right))
|
||||
}
|
||||
|
||||
func compareParsedVersions(a, b versionPart) int {
|
||||
for _, pair := range [][2]int{{a.major, b.major}, {a.minor, b.minor}, {a.patch, b.patch}} {
|
||||
if pair[0] < pair[1] {
|
||||
return -1
|
||||
|
||||
Reference in new issue
Block a user