From e466507637bceaf3d44b08135417dac587307122 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Tue, 14 May 2024 22:47:51 -0300 Subject: [PATCH] fix(cmd): --draft should only override if set closes #4862 Signed-off-by: Carlos Alexandro Becker --- cmd/release.go | 4 +++- cmd/release_test.go | 25 +++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/cmd/release.go b/cmd/release.go index 8c8256ebe..1663aafad 100644 --- a/cmd/release.go +++ b/cmd/release.go @@ -194,7 +194,9 @@ func setupReleaseContext(ctx *context.Context, options releaseOpts) error { ctx.Snapshot = true } - ctx.Config.Release.Draft = options.draft + if options.draft { + ctx.Config.Release.Draft = true + } if err := skips.SetRelease(ctx, options.skips...); err != nil { return err diff --git a/cmd/release_test.go b/cmd/release_test.go index 03de1db7a..681a8376b 100644 --- a/cmd/release_test.go +++ b/cmd/release_test.go @@ -6,6 +6,7 @@ import ( "github.com/goreleaser/goreleaser/internal/skips" "github.com/goreleaser/goreleaser/internal/testctx" + "github.com/goreleaser/goreleaser/pkg/config" "github.com/goreleaser/goreleaser/pkg/context" "github.com/stretchr/testify/require" ) @@ -62,6 +63,30 @@ func TestReleaseFlags(t *testing.T) { return ctx } + t.Run("draft", func(t *testing.T) { + t.Run("not set", func(t *testing.T) { + ctx := setup(t, releaseOpts{}) + require.False(t, ctx.Config.Release.Draft) + }) + + t.Run("set via flag", func(t *testing.T) { + ctx := setup(t, releaseOpts{ + draft: true, + }) + require.True(t, ctx.Config.Release.Draft) + }) + + t.Run("set in config", func(t *testing.T) { + ctx := testctx.NewWithCfg(config.Project{ + Release: config.Release{ + Draft: true, + }, + }) + require.NoError(t, setupReleaseContext(ctx, releaseOpts{})) + require.True(t, ctx.Config.Release.Draft) + }) + }) + t.Run("action", func(t *testing.T) { ctx := setup(t, releaseOpts{}) require.Equal(t, context.ActionRelease, ctx.Action)