Skip to content

Commit

Permalink
Fix ignored settings and forgotten filter
Browse files Browse the repository at this point in the history
  • Loading branch information
graillus committed Dec 10, 2020
1 parent b49f2ca commit a9e1a86
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 10 deletions.
2 changes: 1 addition & 1 deletion cmd/gcrgc/gcrgc.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ func ParseArgs() *gcrgc.Settings {
settings := gcrgc.Settings{
Registry: viper.GetString("registry"),
Repositories: viper.GetStringSlice("repositories"),
ExcludedRepositories: viper.GetStringSlice("excluded-repositories"),
ExcludedRepositories: viper.GetStringSlice("exclude-repositories"),
UntaggedOnly: viper.GetBool("untagged-only"),
ExcludeSemVerTags: viper.GetBool("exclude-semver-tags"),
ExcludedTags: viper.GetStringSlice("exclude-tags"),
Expand Down
32 changes: 24 additions & 8 deletions internal/gcrgc/filters_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -176,15 +176,31 @@ func TestFilterImages(t *testing.T) {
})

t.Run("Exclude tag pattern", func(t *testing.T) {
expectedDigests := []string{"untagged"}
fakeImages := []docker.Image{
// Should match
docker.Image{Digest: "0.0.0", Tags: []string{"dev-7.2-fpm", "dev-7.2-fpm-xxx", "dev-7.2.34-fpm"}},
docker.Image{Digest: "0.0.0", Tags: []string{"7.2-fpm", "7.2-fpm-xxx", "7.2.34-fpm"}},
docker.Image{Digest: "V1.0.0", Tags: []string{"dev-8.0-cli", "dev-8.0-cli-xdebug-3-config", "dev-8.0.0-cli", "dev-8.0.0-cli-xxx"}},
docker.Image{Digest: "V1.0.0", Tags: []string{"dev-7.4-cli", "dev-7.4-cli-xdebug-3-config", "dev-7.4.13-cli", "dev-7.4.13-cli-xdebug-3-config"}},
// Should not match
docker.Image{Digest: "invalid", Tags: []string{"dev-7.4.8-cli"}},
docker.Image{Digest: "invalid", Tags: []string{"sometag"}},
docker.Image{Digest: "invalid", Tags: []string{"dev-8.0-cli-xdebug-3-config", "8.0.0-cli", "dev-8.0.0-cli-xxx"}},
}

expectedDigests := []string{
"invalid",
"invalid",
"invalid",
}

filters := []ImageFilter{
UntaggedFilter{false},
TagNameFilter{[]string{}},
NewTagNameRegexFilter([]string{"^foo"}),
TagNameFilter{[]string{"latest"}},
NewTagNameRegexFilter([]string{"^(dev-)?[0-9]\\.[0-9]-(cli|fpm)$"}),
}

actual := filterImages(createFakeImages(), filters)
actual := filterImages(fakeImages, filters)

err := assertImages(expectedDigests, actual)
if err != nil {
Expand All @@ -195,16 +211,16 @@ func TestFilterImages(t *testing.T) {
t.Run("Exclude SemVer tag pattern", func(t *testing.T) {
fakeImages := []docker.Image{
// Should match
docker.Image{Digest: "invalid", Tags: []string{"2020-02-02-12345"}},
docker.Image{Digest: "invalid", Tags: []string{"latest"}},
docker.Image{Digest: "invalid", Tags: []string{"V1.0.0"}},
// Should not match
docker.Image{Digest: "0.0.0", Tags: []string{"0.0.0"}},
docker.Image{Digest: "v1.0.0", Tags: []string{"v1.0.0"}},
docker.Image{Digest: "V1.0.0", Tags: []string{"V1.0.0"}},
docker.Image{Digest: "999.999.999", Tags: []string{"999.999.999"}},
docker.Image{Digest: "v0.10", Tags: []string{"v0.10"}},
docker.Image{Digest: "2.0.0-rc3", Tags: []string{"2.0.0-rc3"}},
// Should not match
docker.Image{Digest: "invalid", Tags: []string{"2020-02-02-12345"}},
docker.Image{Digest: "invalid", Tags: []string{"latest"}},
docker.Image{Digest: "invalid", Tags: []string{"V1.0.0"}},
}

expectedDigests := []string{
Expand Down
3 changes: 2 additions & 1 deletion internal/gcrgc/gcrgc.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,8 @@ func getTaskList(gcr docker.Provider, repository []docker.Repository, s *Setting
// Create filters to decide which images should be deleted
filters := []ImageFilter{
UntaggedFilter{s.UntaggedOnly},
NewTagNameRegexFilter(s.ExcludedTags),
TagNameFilter{s.ExcludedTags},
NewTagNameRegexFilter(s.ExcludedTagPatterns),
NewSemVerTagNameFilter(s.ExcludeSemVerTags),
}

Expand Down

0 comments on commit a9e1a86

Please sign in to comment.