From b5818a7225acf5c35d7ed8700de1a8ab308b3dce Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Sat, 24 Mar 2018 18:41:24 -0300 Subject: [PATCH] feat: skip_push on docker to match draft releases --- config/config.go | 1 + pipeline/docker/docker.go | 5 +++++ pipeline/docker/docker_test.go | 27 +++++++++++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/config/config.go b/config/config.go index 4b7757719..b4c31554f 100644 --- a/config/config.go +++ b/config/config.go @@ -183,6 +183,7 @@ type Docker struct { Image string `yaml:",omitempty"` Dockerfile string `yaml:",omitempty"` Latest bool `yaml:",omitempty"` + SkipPush bool `yaml:"skip_push,omitempty"` OldTagTemplate string `yaml:"tag_template,omitempty"` TagTemplates []string `yaml:"tag_templates,omitempty"` Files []string `yaml:"extra_files,omitempty"` diff --git a/pipeline/docker/docker.go b/pipeline/docker/docker.go index 800a0ee4e..47010bb4f 100644 --- a/pipeline/docker/docker.go +++ b/pipeline/docker/docker.go @@ -200,6 +200,11 @@ func publish(ctx *context.Context, docker config.Docker, images []string) error log.Warn(pipeline.ErrSkipPublishEnabled.Error()) return nil } + if docker.SkipPush { + // TODO: this should also be better handled + log.Warn(pipeline.Skip("skip_push is set").Error()) + return nil + } for _, image := range images { if err := dockerPush(ctx, docker, image); err != nil { return err diff --git a/pipeline/docker/docker_test.go b/pipeline/docker/docker_test.go index 24074b3c8..6cc15b6f7 100644 --- a/pipeline/docker/docker_test.go +++ b/pipeline/docker/docker_test.go @@ -92,6 +92,33 @@ func TestRunPipe(t *testing.T) { }, assertError: shouldNotErr, }, + "valid_skip_push": { + publish: true, + docker: config.Docker{ + Image: registry + "goreleaser/test_run_pipe", + Goos: "linux", + Goarch: "amd64", + Dockerfile: "testdata/Dockerfile", + Binary: "mybin", + SkipPush: true, + TagTemplates: []string{ + "{{.Tag}}-{{.Env.FOO}}", + "v{{.Major}}", + "v{{.Major}}.{{.Minor}}", + "latest", + }, + Files: []string{ + "testdata/extra_file.txt", + }, + }, + expect: []string{ + registry + "goreleaser/test_run_pipe:v1.0.0-123", + registry + "goreleaser/test_run_pipe:v1", + registry + "goreleaser/test_run_pipe:v1.0", + registry + "goreleaser/test_run_pipe:latest", + }, + assertError: shouldNotErr, + }, "valid_no_latest": { publish: true, docker: config.Docker{