From 2e69fa06673e2ac22a0d4957e63bd612449ef72e Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Wed, 4 Mar 2020 01:14:40 -0300 Subject: [PATCH] fix: snapcraft: do not push when skip publish (#1374) * fix: snapcraft: do not publish when skip publish Signed-off-by: Carlos Alexandro Becker * fix: snapcraft: do not publish when skip publish Signed-off-by: Carlos Alexandro Becker --- internal/pipe/snapcraft/snapcraft.go | 3 +++ internal/pipe/snapcraft/snapcraft_test.go | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/internal/pipe/snapcraft/snapcraft.go b/internal/pipe/snapcraft/snapcraft.go index 2c3d197a201..41090ac7f98 100644 --- a/internal/pipe/snapcraft/snapcraft.go +++ b/internal/pipe/snapcraft/snapcraft.go @@ -141,6 +141,9 @@ func isValidArch(arch string) bool { // Publish packages func (Pipe) Publish(ctx *context.Context) error { + if ctx.SkipPublish { + return pipe.ErrSkipPublishEnabled + } snaps := ctx.Artifacts.Filter(artifact.ByType(artifact.PublishableSnapcraft)).List() var g = semerrgroup.New(ctx.Parallelism) for _, snap := range snaps { diff --git a/internal/pipe/snapcraft/snapcraft_test.go b/internal/pipe/snapcraft/snapcraft_test.go index d191f444653..395ed8f7e9d 100644 --- a/internal/pipe/snapcraft/snapcraft_test.go +++ b/internal/pipe/snapcraft/snapcraft_test.go @@ -9,6 +9,7 @@ import ( "github.com/goreleaser/goreleaser/internal/artifact" "github.com/goreleaser/goreleaser/internal/pipe" + "github.com/goreleaser/goreleaser/internal/testlib" "github.com/goreleaser/goreleaser/pkg/config" "github.com/goreleaser/goreleaser/pkg/context" "github.com/stretchr/testify/assert" @@ -355,6 +356,19 @@ func TestPublish(t *testing.T) { assert.Contains(t, err.Error(), "failed to push nope.snap package") } +func TestPublishSkip(t *testing.T) { + var ctx = context.New(config.Project{}) + ctx.SkipPublish = true + ctx.Artifacts.Add(&artifact.Artifact{ + Name: "mybin", + Path: "nope.snap", + Goarch: "amd64", + Goos: "linux", + Type: artifact.PublishableSnapcraft, + }) + testlib.AssertSkipped(t, Pipe{}.Publish(ctx)) +} + func TestDefaultSet(t *testing.T) { var ctx = context.New(config.Project{ Snapcrafts: []config.Snapcraft{