Merge pull request #1105 from jodh-intel/2.0-dev-fix-kata-check-version-cmp

release: Fix release candidate to major version upgrade check
This commit is contained in:
Julio Montes 2020-11-12 09:26:21 -06:00 committed by GitHub
commit af04d71feb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 1 deletions

View File

@ -321,8 +321,14 @@ func getNewReleaseType(current semver.Version, latest semver.Version) (string, e
} }
} else if latest.Patch == current.Patch && len(latest.Pre) > 0 { } else if latest.Patch == current.Patch && len(latest.Pre) > 0 {
desc = "pre-release" desc = "pre-release"
} else if latest.Major == current.Major &&
latest.Minor == current.Minor &&
latest.Patch == current.Patch {
if len(current.Pre) > 0 && len(latest.Pre) == 0 {
desc = "major"
}
} else { } else {
return "", fmt.Errorf("BUG: unhandled scenario: current version: %s, latest version: %v", current, latest) return "", fmt.Errorf("BUG: unhandled scenario: current version: %s, latest version: %s", current, latest)
} }
return desc, nil return desc, nil

View File

@ -458,6 +458,21 @@ func TestGetNewReleaseType(t *testing.T) {
} }
data := []testData{ data := []testData{
// Check build metadata (ignored for version comparisions)
{"2.0.0+build", "2.0.0", true, ""},
{"2.0.0+build-1", "2.0.0+build-2", true, ""},
{"1.12.0+build", "1.12.0", true, ""},
{"2.0.0-rc3+foo", "2.0.0", false, "major"},
{"2.0.0-rc3+foo", "2.0.0-rc4", false, "pre-release"},
{"1.12.0+foo", "1.13.0", false, "minor"},
{"1.12.0+build", "2.0.0", false, "major"},
{"1.12.0+build", "1.13.0", false, "minor"},
{"1.12.0-rc2+build", "1.12.1", false, "patch"},
{"1.12.0-rc2+build", "1.12.1-foo", false, "patch pre-release"},
{"1.12.0-rc4+wibble", "1.12.0", false, "major"},
{"2.0.0-alpha3", "1.0.0", true, ""}, {"2.0.0-alpha3", "1.0.0", true, ""},
{"1.0.0", "1.0.0", true, ""}, {"1.0.0", "1.0.0", true, ""},
{"2.0.0", "1.0.0", true, ""}, {"2.0.0", "1.0.0", true, ""},
@ -473,6 +488,12 @@ func TestGetNewReleaseType(t *testing.T) {
{"1.0.0", "1.0.3", false, "patch"}, {"1.0.0", "1.0.3", false, "patch"},
{"1.0.0-beta29", "1.0.0-beta30", false, "pre-release"}, {"1.0.0-beta29", "1.0.0-beta30", false, "pre-release"},
{"1.0.0", "1.0.3-alpha99.1b", false, "patch pre-release"}, {"1.0.0", "1.0.3-alpha99.1b", false, "patch pre-release"},
{"2.0.0-rc0", "2.0.0", false, "major"},
{"2.0.0-rc1", "2.0.0", false, "major"},
{"1.12.0-rc0", "1.12.0", false, "major"},
{"1.12.0-rc5", "1.12.0", false, "major"},
} }
for i, d := range data { for i, d := range data {