keeping all available tags

feature/poll-multi-tags
Karolis Rusenas 2018-11-14 20:58:54 +00:00
parent 7075a20c02
commit 2c3d72e627
2 changed files with 31 additions and 1 deletions

View File

@ -109,9 +109,26 @@ func (p *DefaultProviders) TrackedImages() ([]*types.TrackedImage, error) {
trackedImages = append(trackedImages, ti...)
}
log.WithFields(log.Fields{
"images": trackedImages,
}).Debug("tracked images")
return trackedImages, nil
}
func appendIfDoesntExist(tags []string, tag string) []string {
found := false
for _, t := range tags {
if t == tag {
found = true
}
}
if !found {
return append(tags, tag)
}
return tags
}
func appendImage(images []*types.TrackedImage, new *types.TrackedImage) []*types.TrackedImage {
newSemverTag, err := semver.NewVersion(new.Image.Tag())
@ -120,6 +137,8 @@ func appendImage(images []*types.TrackedImage, new *types.TrackedImage) []*types
return append(images, new)
}
new.Tags = appendIfDoesntExist(new.Tags, new.Image.Tag())
// looking for a semver image
idx, ok := lookupSemverImageIdx(images, new)
if !ok || len(images) == 0 {
@ -158,6 +177,8 @@ func appendImage(images []*types.TrackedImage, new *types.TrackedImage) []*types
images[idx].Image = new.Image
}
images[idx].Tags = appendIfDoesntExist(images[idx].Tags, new.Image.Tag())
return images
}

View File

@ -33,7 +33,9 @@ func Test_appendImage(t *testing.T) {
images: []*types.TrackedImage{},
new: testingUtils.GetTrackedImage("karolisr/webhook-demo:latest"),
},
want: []*types.TrackedImage{testingUtils.GetTrackedImage("karolisr/webhook-demo:latest")},
want: []*types.TrackedImage{
testingUtils.GetTrackedImage("karolisr/webhook-demo:latest"),
},
},
{
name: "new semver",
@ -60,6 +62,7 @@ func Test_appendImage(t *testing.T) {
"dev": "1.5.0-dev",
},
Meta: make(map[string]string),
Tags: []string{"1.2.3", "1.5.0-dev"},
},
},
},
@ -73,6 +76,7 @@ func Test_appendImage(t *testing.T) {
"prod": "1.2.3-prod",
},
Meta: make(map[string]string),
Tags: []string{"1.2.3-prod"},
},
},
new: testingUtils.GetTrackedImage("karolisr/webhook-demo:1.5.0-dev"),
@ -85,6 +89,7 @@ func Test_appendImage(t *testing.T) {
"prod": "1.2.3-prod",
},
Meta: make(map[string]string),
Tags: []string{"1.2.3-prod", "1.5.0-dev"},
},
},
},
@ -101,6 +106,7 @@ func Test_appendImage(t *testing.T) {
"dev": "1.5.0-dev",
},
Meta: make(map[string]string),
Tags: []string{"1.5.0-dev"},
},
},
},
@ -128,6 +134,7 @@ func Test_appendImage(t *testing.T) {
"dev": "1.5.0-dev",
},
Meta: make(map[string]string),
Tags: []string{"1.5.0-dev"},
},
},
},
@ -151,6 +158,7 @@ func Test_appendImage(t *testing.T) {
"prod": "1.5.0-prod",
},
Meta: make(map[string]string),
Tags: []string{"1.5.0-prod"},
},
},
new: testingUtils.GetTrackedImage("karolisr/webhook-demo:1.7.0-dev"),
@ -173,6 +181,7 @@ func Test_appendImage(t *testing.T) {
"dev": "1.7.0-dev",
},
Meta: make(map[string]string),
Tags: []string{"1.5.0-prod", "1.7.0-dev"},
},
},
},