1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2025-10-30 23:57:50 +02:00

enforce CommitID (#2830)

* enforce CommitID
This commit is contained in:
tiloKo
2021-05-12 19:59:48 +02:00
committed by GitHub
parent 77fee02319
commit 56ef1201b9
2 changed files with 32 additions and 1 deletions

View File

@@ -2,6 +2,7 @@ package cmd
import (
"encoding/json"
"fmt"
abapbuild "github.com/SAP/jenkins-library/pkg/abap/build"
"github.com/SAP/jenkins-library/pkg/abaputils"
@@ -75,6 +76,7 @@ func (c *componentVersion) initCV(repo abaputils.Repository, conn abapbuild.Conn
c.Connector = conn
c.Name = repo.Name
c.VersionYAML = repo.VersionYAML
c.CommitID = repo.CommitID
}
func (c *componentVersion) copyFieldsToRepo(initialRepo *abaputils.Repository) {
@@ -97,6 +99,11 @@ func (c *componentVersion) validate() error {
c.SpLevel = jCV.ComponentVersion.SpLevel
c.PatchLevel = jCV.ComponentVersion.PatchLevel
log.Entry().Infof("Resolved version %s, splevel %s, patchlevel %s", c.Version, c.SpLevel, c.PatchLevel)
if c.CommitID == "" {
return fmt.Errorf("CommitID missing in repo '%s' of the addon.yml", c.Name)
}
return nil
}
@@ -111,4 +118,5 @@ type componentVersion struct {
Version string `json:"Version"`
SpLevel string `json:"SpLevel"`
PatchLevel string `json:"PatchLevel"`
CommitID string
}

View File

@@ -15,6 +15,20 @@ func mockReadAddonDescriptor(FileName string) (abaputils.AddonDescriptor, error)
var err error
switch FileName {
case "success":
{
addonDescriptor = abaputils.AddonDescriptor{
AddonProduct: "/DRNMSPC/PRD01",
AddonVersionYAML: "3.2.1",
Repositories: []abaputils.Repository{
{
Name: "/DRNMSPC/COMP01",
VersionYAML: "1.2.3",
CommitID: "HUGO1234",
},
},
}
}
case "noCommitID":
{
addonDescriptor = abaputils.AddonDescriptor{
AddonProduct: "/DRNMSPC/PRD01",
@@ -50,12 +64,19 @@ func TestCheckCVsStep(t *testing.T) {
assert.Equal(t, "0001", addonDescriptorFinal.Repositories[0].Version)
assert.Equal(t, "0002", addonDescriptorFinal.Repositories[0].SpLevel)
assert.Equal(t, "0003", addonDescriptorFinal.Repositories[0].PatchLevel)
assert.Equal(t, "HUGO1234", addonDescriptorFinal.Repositories[0].CommitID)
})
t.Run("step error - in validate(no CommitID)", func(t *testing.T) {
config.AddonDescriptorFileName = "noCommitID"
err := runAbapAddonAssemblyKitCheckCVs(&config, nil, client, &cpe, mockReadAddonDescriptor)
assert.Error(t, err, "Must end with error")
assert.Contains(t, err.Error(), "CommitID missing in repo")
})
t.Run("step error - in ReadAddonDescriptor", func(t *testing.T) {
config.AddonDescriptorFileName = "failing"
err := runAbapAddonAssemblyKitCheckCVs(&config, nil, client, &cpe, mockReadAddonDescriptor)
assert.Error(t, err, "Must end with error")
assert.Equal(t, "error in ReadAddonDescriptor", err.Error())
assert.Contains(t, "error in ReadAddonDescriptor", err.Error())
})
t.Run("step error - in validate", func(t *testing.T) {
config.AddonDescriptorFileName = "success"
@@ -93,6 +114,7 @@ func TestValidateCV(t *testing.T) {
Connector: *conn,
Name: "/DRNMSPC/COMP01",
VersionYAML: "1.2.3",
CommitID: "HUGO1234",
}
conn.Client = &abaputils.ClientMock{
Body: responseCheckCVs,
@@ -112,6 +134,7 @@ func TestValidateCV(t *testing.T) {
Connector: *conn,
Name: "/DRNMSPC/COMP01",
VersionYAML: "1.2.3",
CommitID: "HUGO1234",
}
err := c.validate()
assert.Error(t, err)