From c0b2be344fca8c66fda35391ca76d9c3ca9753c8 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Tue, 7 Nov 2023 11:40:31 +0000 Subject: [PATCH] fix: handle configs with no explicit targets on --single-target closes #4411 --- cmd/build.go | 5 +++-- cmd/build_test.go | 10 ++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/cmd/build.go b/cmd/build.go index 4da3134c33b..039d7de606b 100644 --- a/cmd/build.go +++ b/cmd/build.go @@ -260,8 +260,9 @@ func shouldBuild(build config.Build, goos, goarch string) bool { return strings.HasPrefix(e, fmt.Sprintf("%s_%s", goos, goarch)) }) } - return slices.Contains(build.Goos, goos) && - slices.Contains(build.Goarch, goarch) + return (len(build.Goos) == 0 && len(build.Goarch) == 0) || + (slices.Contains(build.Goos, goos) && + slices.Contains(build.Goarch, goarch)) } func setupBuildID(ctx *context.Context, ids []string) error { diff --git a/cmd/build_test.go b/cmd/build_test.go index 829ebadb037..ca330a0cc6c 100644 --- a/cmd/build_test.go +++ b/cmd/build_test.go @@ -201,6 +201,16 @@ func TestBuildFlags(t *testing.T) { require.Equal(t, []string{runtime.GOARCH}, result.Config.Builds[0].Goarch) }) + t.Run("default config", func(t *testing.T) { + ctx := testctx.NewWithCfg(config.Project{ + Builds: []config.Build{{}}, + }) + require.NoError(t, setupBuildContext(ctx, opts)) + require.Len(t, ctx.Config.Builds, 1) + require.Equal(t, []string{runtime.GOOS}, ctx.Config.Builds[0].Goos) + require.Equal(t, []string{runtime.GOARCH}, ctx.Config.Builds[0].Goarch) + }) + t.Run("from env", func(t *testing.T) { t.Setenv("GOOS", "linux") t.Setenv("GOARCH", "arm64")