Skip to content

Commit 5405cd0

Browse files
authored
Merge pull request #1075 from mattcary/version
Update version parsing for beta prereleases
2 parents 41fdfd7 + 6fb5cb5 commit 5405cd0

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

test/k8s-integration/version.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ var (
1414
versionNum = `(0|[1-9][0-9]*)`
1515
internalPatchVersion = `(\-gke\.[0-9]+)`
1616

17-
versionRegex = regexp.MustCompile(`^` + versionNum + `\.` + versionNum + `\.` + versionNum + internalPatchVersion + "?$")
18-
minorVersionRegex = regexp.MustCompile(`^` + versionNum + `\.` + versionNum + `$`)
19-
alphaVersionRegex = regexp.MustCompile(`^` + versionNum + `\.` + versionNum + `\.` + versionNum + `-alpha.*`)
20-
gkeExtraVersionRegex = regexp.MustCompile(`^(?:gke)\.(0|[1-9][0-9]*)$`)
17+
versionRegex = regexp.MustCompile(`^` + versionNum + `\.` + versionNum + `\.` + versionNum + internalPatchVersion + "?$")
18+
minorVersionRegex = regexp.MustCompile(`^` + versionNum + `\.` + versionNum + `$`)
19+
prereleaseVersionRegex = regexp.MustCompile(`^` + versionNum + `\.` + versionNum + `\.` + versionNum + `-(?:alpha|beta).*`)
20+
gkeExtraVersionRegex = regexp.MustCompile(`^(?:gke)\.(0|[1-9][0-9]*)$`)
2121
)
2222

2323
type version struct {
@@ -26,7 +26,7 @@ type version struct {
2626

2727
func (v *version) String() string {
2828
if v.version[3] == -2 {
29-
return fmt.Sprintf("%d.%d.%d-alpha", v.version[0], v.version[1], v.version[2])
29+
return fmt.Sprintf("%d.%d.%d-prerelease", v.version[0], v.version[1], v.version[2])
3030
} else if v.version[3] != -1 {
3131
return fmt.Sprintf("%d.%d.%d-gke.%d", v.version[0], v.version[1], v.version[2], v.version[3])
3232
}
@@ -85,8 +85,8 @@ func parseVersion(vs string) (*version, error) {
8585
case versionRegex.MatchString(vs):
8686
submatches = versionRegex.FindStringSubmatch(vs)
8787
lastIndex = 4
88-
case alphaVersionRegex.MatchString(vs):
89-
submatches = alphaVersionRegex.FindStringSubmatch(vs)
88+
case prereleaseVersionRegex.MatchString(vs):
89+
submatches = prereleaseVersionRegex.FindStringSubmatch(vs)
9090
v.version[3] = -2
9191
lastIndex = 4
9292
case minorVersionRegex.MatchString(vs):
@@ -106,7 +106,7 @@ func parseVersion(vs string) (*version, error) {
106106
}
107107
}
108108

109-
if minorVersionRegex.MatchString(vs) || alphaVersionRegex.MatchString(vs) {
109+
if minorVersionRegex.MatchString(vs) || prereleaseVersionRegex.MatchString(vs) {
110110
return &v, nil
111111
}
112112

test/k8s-integration/version_test.go

+8-2
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,12 @@ func TestParseVersion(t *testing.T) {
7878
version: [4]int{1, 26, 0, -2},
7979
},
8080
},
81+
{
82+
version: "v1.26.0-beta.0.25+4b1b42624e06a9",
83+
expectedV: version{
84+
version: [4]int{1, 26, 0, -2},
85+
},
86+
},
8187
// Negative test cases
8288
{
8389
version: "1",
@@ -112,11 +118,11 @@ func TestParseVersion(t *testing.T) {
112118
expectErr: true,
113119
},
114120
{
115-
version: "1.18.0-beta.x",
121+
version: "1.18.0-zeta.x",
116122
expectErr: true,
117123
},
118124
{
119-
version: "1.18.0-beta.alpha.1",
125+
version: "1.18.0-zeta.alpha.1",
120126
expectErr: true,
121127
},
122128
{

0 commit comments

Comments
 (0)