1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2025-09-16 09:26:22 +02:00

Fix Wildcard Maxx (#5417)

This commit is contained in:
Tilo Körner
2025-07-23 11:51:32 +02:00
committed by GitHub
parent bcf7b4d91c
commit dd0be575c3
2 changed files with 29 additions and 19 deletions

View File

@@ -59,6 +59,10 @@ func (v *versionable) resolveWildCards(statusFilter string) error {
if err := v.resolveMax(statusFilter); err != nil { if err := v.resolveMax(statusFilter); err != nil {
return err return err
} }
var err error
if v.Version, err = v.getDottedVersionString(); err != nil {
return err
}
return nil return nil
} }
@@ -81,9 +85,6 @@ func (v *versionable) resolveNext(statusFilter string) error {
if err != nil { if err != nil {
return err return err
} }
if v.Version, err = v.getDottedVersionString(); err != nil {
return err
}
default: default:
return errors.New("The dotted-version-string must contain only one wildcard " + wildCardNext) return errors.New("The dotted-version-string must contain only one wildcard " + wildCardNext)
} }
@@ -107,6 +108,7 @@ func (v *versionable) resolveMax(statusFilter string) error {
return err return err
} }
} }
return nil return nil
} }

View File

@@ -45,7 +45,7 @@ func TestCvResolve(t *testing.T) {
mc.AddData(testDataAakaasCVGetReleaseExisting) mc.AddData(testDataAakaasCVGetReleaseExisting)
err := vers.constructVersionable("DummyComp", wildCardNext+".0.0", *conn, cvQueryURL) err := vers.constructVersionable("DummyComp", wildCardNext+".0.0", *conn, cvQueryURL)
assert.NoError(t, err) assert.NoError(t, err)
err = vers.resolveNext(statusFilterCV) err = vers.resolveWildCards(statusFilterCV)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "2", vers.TechRelease) assert.Equal(t, "2", vers.TechRelease)
assert.Equal(t, "0000", vers.TechSpLevel) assert.Equal(t, "0000", vers.TechSpLevel)
@@ -56,7 +56,7 @@ func TestCvResolve(t *testing.T) {
mc.AddData(testDataAakaasCVGetReleaseNonExisting) mc.AddData(testDataAakaasCVGetReleaseNonExisting)
err := vers.constructVersionable("DummyComp", wildCardNext+".0.0", *conn, cvQueryURL) err := vers.constructVersionable("DummyComp", wildCardNext+".0.0", *conn, cvQueryURL)
assert.NoError(t, err) assert.NoError(t, err)
err = vers.resolveNext(statusFilterCV) err = vers.resolveWildCards(statusFilterCV)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "1", vers.TechRelease) assert.Equal(t, "1", vers.TechRelease)
assert.Equal(t, "0000", vers.TechSpLevel) assert.Equal(t, "0000", vers.TechSpLevel)
@@ -67,7 +67,7 @@ func TestCvResolve(t *testing.T) {
mc.AddData(testDataAakaasCVGetSpLevelExisting) mc.AddData(testDataAakaasCVGetSpLevelExisting)
err := vers.constructVersionable("DummyComp", "1."+wildCardNext+".0", *conn, cvQueryURL) err := vers.constructVersionable("DummyComp", "1."+wildCardNext+".0", *conn, cvQueryURL)
assert.NoError(t, err) assert.NoError(t, err)
err = vers.resolveNext(statusFilterCV) err = vers.resolveWildCards(statusFilterCV)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "1", vers.TechRelease) assert.Equal(t, "1", vers.TechRelease)
assert.Equal(t, "0008", vers.TechSpLevel) assert.Equal(t, "0008", vers.TechSpLevel)
@@ -79,7 +79,7 @@ func TestCvResolve(t *testing.T) {
mc.AddData(testDataAakaasCVGetSpLevelNonExisting) mc.AddData(testDataAakaasCVGetSpLevelNonExisting)
err := vers.constructVersionable("DummyComp", "1."+wildCardNext+".0", *conn, cvQueryURL) err := vers.constructVersionable("DummyComp", "1."+wildCardNext+".0", *conn, cvQueryURL)
assert.NoError(t, err) assert.NoError(t, err)
err = vers.resolveNext(statusFilterCV) err = vers.resolveWildCards(statusFilterCV)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "1", vers.TechRelease) assert.Equal(t, "1", vers.TechRelease)
assert.Equal(t, "0001", vers.TechSpLevel) assert.Equal(t, "0001", vers.TechSpLevel)
@@ -90,7 +90,7 @@ func TestCvResolve(t *testing.T) {
mc.AddData(testDataAakaasCVGetPatchLevelExisting) mc.AddData(testDataAakaasCVGetPatchLevelExisting)
err := vers.constructVersionable("DummyComp", "1.3."+wildCardNext, *conn, cvQueryURL) err := vers.constructVersionable("DummyComp", "1.3."+wildCardNext, *conn, cvQueryURL)
assert.NoError(t, err) assert.NoError(t, err)
err = vers.resolveNext(statusFilterCV) err = vers.resolveWildCards(statusFilterCV)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "1", vers.TechRelease) assert.Equal(t, "1", vers.TechRelease)
assert.Equal(t, "0003", vers.TechSpLevel) assert.Equal(t, "0003", vers.TechSpLevel)
@@ -102,7 +102,7 @@ func TestCvResolve(t *testing.T) {
mc.AddData(testDataAakaasCVGetPatchLevelNonExisting) mc.AddData(testDataAakaasCVGetPatchLevelNonExisting)
err := vers.constructVersionable("DummyComp", "1.3."+wildCardNext, *conn, cvQueryURL) err := vers.constructVersionable("DummyComp", "1.3."+wildCardNext, *conn, cvQueryURL)
assert.NoError(t, err) assert.NoError(t, err)
err = vers.resolveNext(statusFilterCV) err = vers.resolveWildCards(statusFilterCV)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "1", vers.TechRelease) assert.Equal(t, "1", vers.TechRelease)
assert.Equal(t, "0003", vers.TechSpLevel) assert.Equal(t, "0003", vers.TechSpLevel)
@@ -114,7 +114,7 @@ func TestCvResolve(t *testing.T) {
mc.AddData(testDataAakaasPVGetReleaseExisting) mc.AddData(testDataAakaasPVGetReleaseExisting)
err := vers.constructVersionable("DummyProd", wildCardNext+".0.0", *conn, pvQueryURL) err := vers.constructVersionable("DummyProd", wildCardNext+".0.0", *conn, pvQueryURL)
assert.NoError(t, err) assert.NoError(t, err)
err = vers.resolveNext(statusFilterPV) err = vers.resolveWildCards(statusFilterPV)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "2", vers.TechRelease) assert.Equal(t, "2", vers.TechRelease)
assert.Equal(t, "0000", vers.TechSpLevel) assert.Equal(t, "0000", vers.TechSpLevel)
@@ -126,7 +126,7 @@ func TestCvResolve(t *testing.T) {
mc.AddData(testDataAakaasPVGetReleaseNonExisting) mc.AddData(testDataAakaasPVGetReleaseNonExisting)
err := vers.constructVersionable("DummyProd", wildCardNext+".0.0", *conn, pvQueryURL) err := vers.constructVersionable("DummyProd", wildCardNext+".0.0", *conn, pvQueryURL)
assert.NoError(t, err) assert.NoError(t, err)
err = vers.resolveNext(statusFilterPV) err = vers.resolveWildCards(statusFilterPV)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "1", vers.TechRelease) assert.Equal(t, "1", vers.TechRelease)
assert.Equal(t, "0000", vers.TechSpLevel) assert.Equal(t, "0000", vers.TechSpLevel)
@@ -138,87 +138,95 @@ func TestCvResolve(t *testing.T) {
mc.AddData(testDataAakaasCVGetReleaseExisting) mc.AddData(testDataAakaasCVGetReleaseExisting)
err := vers.constructVersionable("DummyComp", wildCardMax+".0.0", *conn, cvQueryURL) err := vers.constructVersionable("DummyComp", wildCardMax+".0.0", *conn, cvQueryURL)
assert.NoError(t, err) assert.NoError(t, err)
err = vers.resolveMax(statusFilterCV) err = vers.resolveWildCards(statusFilterCV)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "1", vers.TechRelease) assert.Equal(t, "1", vers.TechRelease)
assert.Equal(t, "0000", vers.TechSpLevel) assert.Equal(t, "0000", vers.TechSpLevel)
assert.Equal(t, "0000", vers.TechPatchLevel) assert.Equal(t, "0000", vers.TechPatchLevel)
assert.Equal(t, "1.0.0", vers.Version)
}) })
t.Run("Component Version MAX Release non existing", func(t *testing.T) { t.Run("Component Version MAX Release non existing", func(t *testing.T) {
mc.AddData(testDataAakaasCVGetReleaseNonExisting) mc.AddData(testDataAakaasCVGetReleaseNonExisting)
err := vers.constructVersionable("DummyComp", wildCardMax+".0.0", *conn, cvQueryURL) err := vers.constructVersionable("DummyComp", wildCardMax+".0.0", *conn, cvQueryURL)
assert.NoError(t, err) assert.NoError(t, err)
err = vers.resolveMax(statusFilterCV) err = vers.resolveWildCards(statusFilterCV)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "0", vers.TechRelease) assert.Equal(t, "0", vers.TechRelease)
assert.Equal(t, "0000", vers.TechSpLevel) assert.Equal(t, "0000", vers.TechSpLevel)
assert.Equal(t, "0000", vers.TechPatchLevel) assert.Equal(t, "0000", vers.TechPatchLevel)
assert.Equal(t, "0.0.0", vers.Version)
}) })
t.Run("Component Version MAX SP Level existing", func(t *testing.T) { t.Run("Component Version MAX SP Level existing", func(t *testing.T) {
mc.AddData(testDataAakaasCVGetSpLevelExisting) mc.AddData(testDataAakaasCVGetSpLevelExisting)
err := vers.constructVersionable("DummyComp", "1."+wildCardMax+".0", *conn, cvQueryURL) err := vers.constructVersionable("DummyComp", "1."+wildCardMax+".0", *conn, cvQueryURL)
assert.NoError(t, err) assert.NoError(t, err)
err = vers.resolveMax(statusFilterCV) err = vers.resolveWildCards(statusFilterCV)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "1", vers.TechRelease) assert.Equal(t, "1", vers.TechRelease)
assert.Equal(t, "0007", vers.TechSpLevel) assert.Equal(t, "0007", vers.TechSpLevel)
assert.Equal(t, "0000", vers.TechPatchLevel) assert.Equal(t, "0000", vers.TechPatchLevel)
assert.Equal(t, "1.7.0", vers.Version)
}) })
t.Run("Component Version MAX SP Level non existing", func(t *testing.T) { t.Run("Component Version MAX SP Level non existing", func(t *testing.T) {
mc.AddData(testDataAakaasCVGetSpLevelNonExisting) mc.AddData(testDataAakaasCVGetSpLevelNonExisting)
err := vers.constructVersionable("DummyComp", "1."+wildCardMax+".0", *conn, cvQueryURL) err := vers.constructVersionable("DummyComp", "1."+wildCardMax+".0", *conn, cvQueryURL)
assert.NoError(t, err) assert.NoError(t, err)
err = vers.resolveMax(statusFilterCV) err = vers.resolveWildCards(statusFilterCV)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "1", vers.TechRelease) assert.Equal(t, "1", vers.TechRelease)
assert.Equal(t, "0000", vers.TechSpLevel) assert.Equal(t, "0000", vers.TechSpLevel)
assert.Equal(t, "0000", vers.TechPatchLevel) assert.Equal(t, "0000", vers.TechPatchLevel)
assert.Equal(t, "1.0.0", vers.Version)
}) })
t.Run("Component Version MAX Patch Level existing", func(t *testing.T) { t.Run("Component Version MAX Patch Level existing", func(t *testing.T) {
mc.AddData(testDataAakaasCVGetPatchLevelExisting) mc.AddData(testDataAakaasCVGetPatchLevelExisting)
err := vers.constructVersionable("DummyComp", "1.3."+wildCardMax, *conn, cvQueryURL) err := vers.constructVersionable("DummyComp", "1.3."+wildCardMax, *conn, cvQueryURL)
assert.NoError(t, err) assert.NoError(t, err)
err = vers.resolveMax(statusFilterCV) err = vers.resolveWildCards(statusFilterCV)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "1", vers.TechRelease) assert.Equal(t, "1", vers.TechRelease)
assert.Equal(t, "0003", vers.TechSpLevel) assert.Equal(t, "0003", vers.TechSpLevel)
assert.Equal(t, "0046", vers.TechPatchLevel) assert.Equal(t, "0046", vers.TechPatchLevel)
assert.Equal(t, "1.3.46", vers.Version)
}) })
t.Run("Component Version MAX Patch Level non existing", func(t *testing.T) { t.Run("Component Version MAX Patch Level non existing", func(t *testing.T) {
mc.AddData(testDataAakaasCVGetPatchLevelNonExisting) mc.AddData(testDataAakaasCVGetPatchLevelNonExisting)
err := vers.constructVersionable("DummyComp", "1.3."+wildCardMax, *conn, cvQueryURL) err := vers.constructVersionable("DummyComp", "1.3."+wildCardMax, *conn, cvQueryURL)
assert.NoError(t, err) assert.NoError(t, err)
err = vers.resolveMax(statusFilterCV) err = vers.resolveWildCards(statusFilterCV)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "1", vers.TechRelease) assert.Equal(t, "1", vers.TechRelease)
assert.Equal(t, "0003", vers.TechSpLevel) assert.Equal(t, "0003", vers.TechSpLevel)
assert.Equal(t, "0000", vers.TechPatchLevel) assert.Equal(t, "0000", vers.TechPatchLevel)
assert.Equal(t, "1.3.0", vers.Version)
}) })
t.Run("Product Version MAX Release existing", func(t *testing.T) { t.Run("Product Version MAX Release existing", func(t *testing.T) {
mc.AddData(testDataAakaasPVGetReleaseExisting) mc.AddData(testDataAakaasPVGetReleaseExisting)
err := vers.constructVersionable("DummyProd", wildCardMax+".0.0", *conn, pvQueryURL) err := vers.constructVersionable("DummyProd", wildCardMax+".0.0", *conn, pvQueryURL)
assert.NoError(t, err) assert.NoError(t, err)
err = vers.resolveMax(statusFilterPV) err = vers.resolveWildCards(statusFilterPV)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "1", vers.TechRelease) assert.Equal(t, "1", vers.TechRelease)
assert.Equal(t, "0000", vers.TechSpLevel) assert.Equal(t, "0000", vers.TechSpLevel)
assert.Equal(t, "0000", vers.TechPatchLevel) assert.Equal(t, "0000", vers.TechPatchLevel)
assert.Equal(t, "1.0.0", vers.Version)
}) })
t.Run("Product Version MAX Release non existing", func(t *testing.T) { t.Run("Product Version MAX Release non existing", func(t *testing.T) {
mc.AddData(testDataAakaasPVGetReleaseNonExisting) mc.AddData(testDataAakaasPVGetReleaseNonExisting)
err := vers.constructVersionable("DummyProd", wildCardMax+".0.0", *conn, pvQueryURL) err := vers.constructVersionable("DummyProd", wildCardMax+".0.0", *conn, pvQueryURL)
assert.NoError(t, err) assert.NoError(t, err)
err = vers.resolveMax(statusFilterPV) err = vers.resolveWildCards(statusFilterPV)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "0", vers.TechRelease) assert.Equal(t, "0", vers.TechRelease)
assert.Equal(t, "0000", vers.TechSpLevel) assert.Equal(t, "0000", vers.TechSpLevel)
assert.Equal(t, "0000", vers.TechPatchLevel) assert.Equal(t, "0000", vers.TechPatchLevel)
assert.Equal(t, "0.0.0", vers.Version)
}) })
} }