mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-09-15 12:18:57 +00:00
fix version subcommand is not working after release build
This commit is contained in:
@@ -67,14 +67,22 @@ func GetProvenance() Provenance {
|
|||||||
|
|
||||||
for _, dep := range info.Deps {
|
for _, dep := range info.Deps {
|
||||||
if dep != nil && dep.Path == "sigs.k8s.io/kustomize/kustomize/v5" {
|
if dep != nil && dep.Path == "sigs.k8s.io/kustomize/kustomize/v5" {
|
||||||
p.Version = GetMostRecentTag(*dep)
|
if dep.Version != "devel" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
v, err := GetMostRecentTag(*dep)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("failed to get most recent tag for %s: %v\n", dep.Path, err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
p.Version = v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetMostRecentTag(m debug.Module) string {
|
func GetMostRecentTag(m debug.Module) (string, error) {
|
||||||
for m.Replace != nil {
|
for m.Replace != nil {
|
||||||
m = *m.Replace
|
m = *m.Replace
|
||||||
}
|
}
|
||||||
@@ -83,13 +91,13 @@ func GetMostRecentTag(m debug.Module) string {
|
|||||||
sv, err := semver.Parse(strings.TrimPrefix(split[0], "v"))
|
sv, err := semver.Parse(strings.TrimPrefix(split[0], "v"))
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "unknown"
|
return "", fmt.Errorf("failed to parse version %s: %w", m.Version, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(split) > 1 && sv.Patch > 0 {
|
if len(split) > 1 && sv.Patch > 0 {
|
||||||
sv.Patch -= 1
|
sv.Patch -= 1
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("v%s", sv.FinalizeVersion())
|
return fmt.Sprintf("v%s", sv.FinalizeVersion()), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Short returns the shortened provenance stamp.
|
// Short returns the shortened provenance stamp.
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ func TestGetMostRecentTag(t *testing.T) {
|
|||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
module debug.Module
|
module debug.Module
|
||||||
|
isError bool
|
||||||
expectedTag string
|
expectedTag string
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
@@ -72,9 +73,9 @@ func TestGetMostRecentTag(t *testing.T) {
|
|||||||
expectedTag: "v0.0.0",
|
expectedTag: "v0.0.0",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Invalid semver string",
|
name: "Invalid semver string",
|
||||||
module: mockModule("invalid-version"),
|
module: mockModule("invalid-version"),
|
||||||
expectedTag: "unknown",
|
isError: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Valid semver with patch increment and pre-release info",
|
name: "Valid semver with patch increment and pre-release info",
|
||||||
@@ -90,8 +91,14 @@ func TestGetMostRecentTag(t *testing.T) {
|
|||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
tag := provenance.GetMostRecentTag(tt.module)
|
tag, err := provenance.GetMostRecentTag(tt.module)
|
||||||
assert.Equal(t, tt.expectedTag, tag)
|
if err != nil {
|
||||||
|
if !tt.isError {
|
||||||
|
assert.NoError(t, err)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
assert.Equal(t, tt.expectedTag, tag)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user