mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-03-17 20:47:50 +02:00
fix: build override consider goarm64
plus more tests
This commit is contained in:
parent
6ef6623d46
commit
a4ead4ba28
@ -282,9 +282,9 @@ func (*Builder) Build(ctx *context.Context, build config.Build, options api.Opti
|
||||
}
|
||||
|
||||
func withOverrides(ctx *context.Context, build config.Build, options api.Options) (config.BuildDetails, error) {
|
||||
optsTarget := options.Goos + options.Goarch + options.Goamd64 + options.Go386 + options.Goarm + options.Gomips + options.Goppc64 + options.Goriscv64
|
||||
optsTarget := options.Goos + options.Goarch + options.Goamd64 + options.Go386 + options.Goarm + options.Goarm64 + options.Gomips + options.Goppc64 + options.Goriscv64
|
||||
for _, o := range build.BuildDetailsOverrides {
|
||||
overrideTarget, err := tmpl.New(ctx).Apply(o.Goos + o.Goarch + o.Goamd64 + o.Go386 + o.Goarm + o.Gomips + o.Goppc64 + o.Goriscv64)
|
||||
overrideTarget, err := tmpl.New(ctx).Apply(o.Goos + o.Goarch + o.Goamd64 + o.Go386 + o.Goarm + o.Goarm64 + o.Gomips + o.Goppc64 + o.Goriscv64)
|
||||
if err != nil {
|
||||
return build.BuildDetails, err
|
||||
}
|
||||
|
@ -134,6 +134,33 @@ func TestWithDefaults(t *testing.T) {
|
||||
targets: []string{"linux_arm_6"},
|
||||
goBinary: "go",
|
||||
},
|
||||
"custom targets no arm64": {
|
||||
build: config.Build{
|
||||
ID: "foo3",
|
||||
Binary: "foo",
|
||||
Targets: []string{"linux_arm64"},
|
||||
},
|
||||
targets: []string{"linux_arm64_v8.0"},
|
||||
goBinary: "go",
|
||||
},
|
||||
"custom targets no ppc64": {
|
||||
build: config.Build{
|
||||
ID: "foo3",
|
||||
Binary: "foo",
|
||||
Targets: []string{"linux_ppc64le", "linux_ppc64"},
|
||||
},
|
||||
targets: []string{"linux_ppc64le_power8", "linux_ppc64_power8"},
|
||||
goBinary: "go",
|
||||
},
|
||||
"custom targets no riscv64": {
|
||||
build: config.Build{
|
||||
ID: "foo3",
|
||||
Binary: "foo",
|
||||
Targets: []string{"linux_riscv64"},
|
||||
},
|
||||
targets: []string{"linux_riscv64_rva20u64"},
|
||||
goBinary: "go",
|
||||
},
|
||||
"custom targets no mips": {
|
||||
build: config.Build{
|
||||
ID: "foo3",
|
||||
@ -1244,33 +1271,43 @@ func TestBuildGoBuildLine(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestOverrides(t *testing.T) {
|
||||
t.Run("linux amd64", func(t *testing.T) {
|
||||
dets, err := withOverrides(
|
||||
testctx.New(),
|
||||
config.Build{
|
||||
BuildDetails: config.BuildDetails{
|
||||
Ldflags: []string{"original"},
|
||||
Env: []string{"BAR=foo", "FOO=bar"},
|
||||
},
|
||||
BuildDetailsOverrides: []config.BuildDetailsOverride{
|
||||
{
|
||||
Goos: "linux",
|
||||
Goarch: "amd64",
|
||||
BuildDetails: config.BuildDetails{
|
||||
Ldflags: []string{"overridden"},
|
||||
Env: []string{"FOO=overridden"},
|
||||
for _, arch := range []string{
|
||||
"amd64",
|
||||
"arm64",
|
||||
"ppc64",
|
||||
"ppc64le",
|
||||
"riscv64",
|
||||
"386",
|
||||
"mips",
|
||||
} {
|
||||
t.Run("linux "+arch, func(t *testing.T) {
|
||||
dets, err := withOverrides(
|
||||
testctx.New(),
|
||||
config.Build{
|
||||
BuildDetails: config.BuildDetails{
|
||||
Ldflags: []string{"original"},
|
||||
Env: []string{"BAR=foo", "FOO=bar"},
|
||||
},
|
||||
BuildDetailsOverrides: []config.BuildDetailsOverride{
|
||||
{
|
||||
Goos: "linux",
|
||||
Goarch: arch,
|
||||
BuildDetails: config.BuildDetails{
|
||||
Ldflags: []string{"overridden"},
|
||||
Env: []string{"FOO=overridden"},
|
||||
},
|
||||
},
|
||||
},
|
||||
}, api.Options{
|
||||
Goos: "linux",
|
||||
Goarch: arch,
|
||||
},
|
||||
}, api.Options{
|
||||
Goos: "linux",
|
||||
Goarch: "amd64",
|
||||
},
|
||||
)
|
||||
require.NoError(t, err)
|
||||
require.ElementsMatch(t, dets.Ldflags, []string{"overridden"})
|
||||
require.ElementsMatch(t, dets.Env, []string{"BAR=foo", "FOO=overridden"})
|
||||
})
|
||||
)
|
||||
require.NoError(t, err)
|
||||
require.ElementsMatch(t, dets.Ldflags, []string{"overridden"})
|
||||
require.ElementsMatch(t, dets.Env, []string{"BAR=foo", "FOO=overridden"})
|
||||
})
|
||||
}
|
||||
|
||||
t.Run("single sided", func(t *testing.T) {
|
||||
dets, err := withOverrides(
|
||||
@ -1351,6 +1388,36 @@ func TestOverrides(t *testing.T) {
|
||||
testlib.RequireTemplateError(t, err)
|
||||
})
|
||||
|
||||
t.Run("with goarm64", func(t *testing.T) {
|
||||
dets, err := withOverrides(
|
||||
testctx.New(),
|
||||
config.Build{
|
||||
BuildDetails: config.BuildDetails{
|
||||
Ldflags: []string{"original"},
|
||||
},
|
||||
BuildDetailsOverrides: []config.BuildDetailsOverride{
|
||||
{
|
||||
Goos: "linux",
|
||||
Goarch: "arm64",
|
||||
Goarm64: "v8.0",
|
||||
BuildDetails: config.BuildDetails{
|
||||
Ldflags: []string{"overridden"},
|
||||
},
|
||||
},
|
||||
},
|
||||
}, api.Options{
|
||||
Goos: "linux",
|
||||
Goarch: "arm64",
|
||||
Goarm64: "v8.0",
|
||||
},
|
||||
)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, config.BuildDetails{
|
||||
Ldflags: []string{"overridden"},
|
||||
Env: []string{},
|
||||
}, dets)
|
||||
})
|
||||
|
||||
t.Run("with goarm", func(t *testing.T) {
|
||||
dets, err := withOverrides(
|
||||
testctx.New(),
|
||||
@ -1410,6 +1477,66 @@ func TestOverrides(t *testing.T) {
|
||||
Env: []string{},
|
||||
}, dets)
|
||||
})
|
||||
|
||||
t.Run("with goriscv64", func(t *testing.T) {
|
||||
dets, err := withOverrides(
|
||||
testctx.New(),
|
||||
config.Build{
|
||||
BuildDetails: config.BuildDetails{
|
||||
Ldflags: []string{"original"},
|
||||
},
|
||||
BuildDetailsOverrides: []config.BuildDetailsOverride{
|
||||
{
|
||||
Goos: "linux",
|
||||
Goarch: "riscv64",
|
||||
Goriscv64: "rva22u64",
|
||||
BuildDetails: config.BuildDetails{
|
||||
Ldflags: []string{"overridden"},
|
||||
},
|
||||
},
|
||||
},
|
||||
}, api.Options{
|
||||
Goos: "linux",
|
||||
Goarch: "riscv64",
|
||||
Goriscv64: "rva22u64",
|
||||
},
|
||||
)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, config.BuildDetails{
|
||||
Ldflags: []string{"overridden"},
|
||||
Env: []string{},
|
||||
}, dets)
|
||||
})
|
||||
|
||||
t.Run("with go386", func(t *testing.T) {
|
||||
dets, err := withOverrides(
|
||||
testctx.New(),
|
||||
config.Build{
|
||||
BuildDetails: config.BuildDetails{
|
||||
Ldflags: []string{"original"},
|
||||
},
|
||||
BuildDetailsOverrides: []config.BuildDetailsOverride{
|
||||
{
|
||||
Goos: "linux",
|
||||
Goarch: "386",
|
||||
Go386: "sse2",
|
||||
BuildDetails: config.BuildDetails{
|
||||
Ldflags: []string{"overridden"},
|
||||
},
|
||||
},
|
||||
},
|
||||
}, api.Options{
|
||||
Goos: "linux",
|
||||
Goarch: "386",
|
||||
Go386: "sse2",
|
||||
},
|
||||
)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, config.BuildDetails{
|
||||
Ldflags: []string{"overridden"},
|
||||
Env: []string{},
|
||||
}, dets)
|
||||
})
|
||||
}
|
||||
|
||||
func TestWarnIfTargetsAndOtherOptionsTogether(t *testing.T) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user