From e16c135d957f6d618e353b0e76732e9187a5df56 Mon Sep 17 00:00:00 2001 From: Jonas Lundberg Date: Tue, 3 Aug 2021 03:10:26 +0200 Subject: [PATCH] fix: make scoop write .json when --skip-publish Don't skip the pipeline altogether but write out the manifest.json file as the homebrew pipeline does, only skip committing to the repo. closes #2374 --- internal/pipe/scoop/scoop.go | 4 --- internal/pipe/scoop/scoop_test.go | 56 ++++++++++++++++++++++++++++++- 2 files changed, 55 insertions(+), 5 deletions(-) diff --git a/internal/pipe/scoop/scoop.go b/internal/pipe/scoop/scoop.go index 681c4a2c0f98..9f2e49116331 100644 --- a/internal/pipe/scoop/scoop.go +++ b/internal/pipe/scoop/scoop.go @@ -34,10 +34,6 @@ func (Pipe) String() string { // Publish scoop manifest. func (Pipe) Publish(ctx *context.Context) error { - if ctx.SkipPublish { - return pipe.ErrSkipPublishEnabled - } - client, err := client.New(ctx) if err != nil { return err diff --git a/internal/pipe/scoop/scoop_test.go b/internal/pipe/scoop/scoop_test.go index e9758b8079a9..06ca1bbd8930 100644 --- a/internal/pipe/scoop/scoop_test.go +++ b/internal/pipe/scoop/scoop_test.go @@ -997,7 +997,7 @@ func Test_buildManifest(t *testing.T) { } } -func TestRunPipeScoopWithSkip(t *testing.T) { +func TestRunPipeScoopWithSkipUpload(t *testing.T) { folder := t.TempDir() ctx := &context.Context{ Git: context.GitInfo{ @@ -1051,6 +1051,60 @@ func TestRunPipeScoopWithSkip(t *testing.T) { require.NoError(t, err, "file should exist: "+distFile) } +func TestRunPipeScoopWithSkipPublish(t *testing.T) { + folder := t.TempDir() + ctx := &context.Context{ + Git: context.GitInfo{ + CurrentTag: "v1.0.1", + }, + Version: "1.0.1", + Artifacts: artifact.New(), + Config: config.Project{ + Archives: []config.Archive{ + {Format: "tar.gz"}, + }, + Builds: []config.Build{ + {Binary: "test"}, + }, + Dist: folder, + ProjectName: "run-pipe", + Scoop: config.Scoop{ + Bucket: config.RepoRef{ + Owner: "test", + Name: "test", + }, + Description: "A run pipe test formula", + Homepage: "https://github.com/goreleaser", + Name: "run-pipe", + }, + }, + SkipPublish: true, + } + path := filepath.Join(folder, "bin.tar.gz") + ctx.Artifacts.Add(&artifact.Artifact{ + Name: "bin.tar.gz", + Path: path, + Goos: "windows", + Goarch: "amd64", + Type: artifact.UploadableArchive, + Extra: map[string]interface{}{ + "ID": "foo", + "Format": "tar.gz", + }, + }) + + f, err := os.Create(path) + require.NoError(t, err) + require.NoError(t, f.Close()) + + cli := &DummyClient{} + require.EqualError(t, doRun(ctx, cli), pipe.ErrSkipPublishEnabled.Error()) + + distFile := filepath.Join(folder, ctx.Config.Scoop.Name+".json") + _, err = os.Stat(distFile) + require.NoError(t, err, "file should exist: "+distFile) +} + func TestWrapInDirectory(t *testing.T) { folder := t.TempDir() file := filepath.Join(folder, "archive")