1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2025-11-06 09:09:19 +02:00

RobustConfirm (#3179)

confirm no longer done based on package status but now based on boolean indicator which is set during assembly step.
Thus confirm can now be placed after release packages.
This commit is contained in:
tiloKo
2021-10-28 11:01:16 +02:00
committed by GitHub
parent 36e5b543ed
commit a0ad624b9a
10 changed files with 63 additions and 60 deletions

View File

@@ -51,6 +51,7 @@ type Repository struct {
Namespace string
SarXMLFilePath string
Languages []string `json:"languages"`
InBuildScope bool
}
// ReadAddonDescriptorType is the type for ReadAddonDescriptor for mocking
@@ -116,7 +117,7 @@ func (me *AddonDescriptor) initFromYmlFile(FileName string, readFile readFileFun
func CheckAddonDescriptorForRepositories(addonDescriptor AddonDescriptor) error {
//checking if parsing went wrong
if len(addonDescriptor.Repositories) == 0 {
return errors.New(fmt.Sprintf("AddonDescriptor doesn't contain any repositories"))
return errors.New("AddonDescriptor doesn't contain any repositories")
}
//
emptyRepositoryCounter := 0
@@ -125,7 +126,7 @@ func CheckAddonDescriptorForRepositories(addonDescriptor AddonDescriptor) error
emptyRepositoryCounter++
}
if counter+1 == len(addonDescriptor.Repositories) && emptyRepositoryCounter == len(addonDescriptor.Repositories) {
return errors.New(fmt.Sprintf("AddonDescriptor doesn't contain any repositories"))
return errors.New("AddonDescriptor doesn't contain any repositories")
}
}
return nil
@@ -159,3 +160,13 @@ func (me *Repository) GetAakAasLanguageVector() string {
}
return languageVector
}
func (me *AddonDescriptor) GetRepositoriesInBuildScope() []Repository {
var RepositoriesInBuildScope []Repository
for _, repo := range me.Repositories {
if repo.InBuildScope {
RepositoriesInBuildScope = append(RepositoriesInBuildScope, repo)
}
}
return RepositoriesInBuildScope
}

View File

@@ -14,18 +14,29 @@ func readFileMock(FileName string) ([]byte, error) {
}
func TestAddonDescriptorNew(t *testing.T) {
t.Run("Import addon.yml", func(t *testing.T) {
var addonDescriptor AddonDescriptor
err := addonDescriptor.initFromYmlFile(TestAddonDescriptorYAML, readFileMock)
CheckAddonDescriptorForRepositories(addonDescriptor)
var addonDescriptor AddonDescriptor
err := addonDescriptor.initFromYmlFile(TestAddonDescriptorYAML, readFileMock)
assert.NoError(t, err)
err = CheckAddonDescriptorForRepositories(addonDescriptor)
assert.NoError(t, err)
assert.NoError(t, err)
t.Run("Import addon.yml", func(t *testing.T) {
assert.Equal(t, "/DMO/myAddonProduct", addonDescriptor.AddonProduct)
assert.Equal(t, "/DMO/REPO_A", addonDescriptor.Repositories[0].Name)
assert.Equal(t, "JEK8S273S", addonDescriptor.Repositories[1].CommitID)
assert.Equal(t, "FR", addonDescriptor.Repositories[1].Languages[2])
assert.Equal(t, `ISO-DEENFR`, addonDescriptor.Repositories[1].GetAakAasLanguageVector())
})
t.Run("getRepositoriesInBuildScope", func(t *testing.T) {
assert.Equal(t, 2, len(addonDescriptor.Repositories))
addonDescriptor.Repositories[1].InBuildScope = true
repos := addonDescriptor.GetRepositoriesInBuildScope()
assert.Equal(t, 1, len(repos))
assert.Equal(t, "/DMO/REPO_B", repos[0].Name)
})
}
var TestAddonDescriptorYAML = `---
@@ -130,6 +141,7 @@ func TestReadAddonDescriptor(t *testing.T) {
- repo: 'testRepo2'`
err = ioutil.WriteFile("repositories.yml", []byte(manifestFileString), 0644)
assert.NoError(t, err)
addonDescriptor, err := ReadAddonDescriptor("repositories.yml")