You've already forked goreleaser
mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-07-13 01:30:50 +02:00
moving targets to buildtarget package as well
This commit is contained in:
@ -43,7 +43,7 @@ func runPipeOnBuild(ctx *context.Context, build config.Build) error {
|
||||
}
|
||||
sem := make(chan bool, 4)
|
||||
var g errgroup.Group
|
||||
for _, target := range buildTargets(build) {
|
||||
for _, target := range buildtarget.All(build) {
|
||||
sem <- true
|
||||
target := target
|
||||
build := build
|
||||
|
@ -1,59 +0,0 @@
|
||||
package build
|
||||
|
||||
import (
|
||||
"github.com/apex/log"
|
||||
"github.com/goreleaser/goreleaser/config"
|
||||
"github.com/goreleaser/goreleaser/internal/buildtarget"
|
||||
)
|
||||
|
||||
func buildTargets(build config.Build) (targets []buildtarget.Target) {
|
||||
for _, target := range allBuildTargets(build) {
|
||||
if !valid(target) {
|
||||
log.WithField("target", target.String()).
|
||||
Warn("skipped invalid build")
|
||||
continue
|
||||
}
|
||||
if ignored(build, target) {
|
||||
log.WithField("target", target.String()).
|
||||
Warn("skipped ignored build")
|
||||
continue
|
||||
}
|
||||
targets = append(targets, target)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func allBuildTargets(build config.Build) (targets []buildtarget.Target) {
|
||||
for _, goos := range build.Goos {
|
||||
for _, goarch := range build.Goarch {
|
||||
if goarch == "arm" {
|
||||
for _, goarm := range build.Goarm {
|
||||
targets = append(targets, buildtarget.New(goos, goarch, goarm))
|
||||
}
|
||||
continue
|
||||
}
|
||||
targets = append(targets, buildtarget.New(goos, goarch, ""))
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func ignored(build config.Build, target buildtarget.Target) bool {
|
||||
for _, ig := range build.Ignore {
|
||||
var ignored = buildtarget.New(ig.Goos, ig.Goarch, ig.Goarm)
|
||||
if ignored == target {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func valid(target buildtarget.Target) bool {
|
||||
var s = target.OS + target.Arch
|
||||
for _, a := range valids {
|
||||
if a == s {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
@ -1,100 +0,0 @@
|
||||
package build
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/goreleaser/goreleaser/config"
|
||||
"github.com/goreleaser/goreleaser/internal/buildtarget"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestAllBuildTargets(t *testing.T) {
|
||||
var assert = assert.New(t)
|
||||
var build = config.Build{
|
||||
Goos: []string{
|
||||
"linux",
|
||||
"darwin",
|
||||
"freebsd",
|
||||
},
|
||||
Goarch: []string{
|
||||
"386",
|
||||
"amd64",
|
||||
"arm",
|
||||
"arm64",
|
||||
},
|
||||
Goarm: []string{
|
||||
"6",
|
||||
"7",
|
||||
},
|
||||
Ignore: []config.IgnoredBuild{
|
||||
{
|
||||
Goos: "darwin",
|
||||
Goarch: "386",
|
||||
}, {
|
||||
Goos: "linux",
|
||||
Goarch: "arm",
|
||||
Goarm: "7",
|
||||
},
|
||||
},
|
||||
}
|
||||
assert.Equal([]buildtarget.Target{
|
||||
buildtarget.New("linux", "386", ""),
|
||||
buildtarget.New("linux", "amd64", ""),
|
||||
buildtarget.New("linux", "arm", "6"),
|
||||
buildtarget.New("linux", "arm64", ""),
|
||||
buildtarget.New("darwin", "amd64", ""),
|
||||
buildtarget.New("freebsd", "386", ""),
|
||||
buildtarget.New("freebsd", "amd64", ""),
|
||||
buildtarget.New("freebsd", "arm", "6"),
|
||||
buildtarget.New("freebsd", "arm", "7"),
|
||||
}, buildTargets(build))
|
||||
}
|
||||
|
||||
func TestGoosGoarchCombos(t *testing.T) {
|
||||
var platforms = []struct {
|
||||
os string
|
||||
arch string
|
||||
valid bool
|
||||
}{
|
||||
// valid targets:
|
||||
{"android", "arm", true},
|
||||
{"darwin", "386", true},
|
||||
{"darwin", "amd64", true},
|
||||
{"dragonfly", "amd64", true},
|
||||
{"freebsd", "386", true},
|
||||
{"freebsd", "amd64", true},
|
||||
{"freebsd", "arm", true},
|
||||
{"linux", "386", true},
|
||||
{"linux", "amd64", true},
|
||||
{"linux", "arm", true},
|
||||
{"linux", "arm64", true},
|
||||
{"linux", "mips", true},
|
||||
{"linux", "mipsle", true},
|
||||
{"linux", "mips64", true},
|
||||
{"linux", "mips64le", true},
|
||||
{"linux", "ppc64", true},
|
||||
{"linux", "ppc64le", true},
|
||||
{"netbsd", "386", true},
|
||||
{"netbsd", "amd64", true},
|
||||
{"netbsd", "arm", true},
|
||||
{"openbsd", "386", true},
|
||||
{"openbsd", "amd64", true},
|
||||
{"openbsd", "arm", true},
|
||||
{"plan9", "386", true},
|
||||
{"plan9", "amd64", true},
|
||||
{"solaris", "amd64", true},
|
||||
{"windows", "386", true},
|
||||
{"windows", "amd64", true},
|
||||
// invalid targets
|
||||
{"darwin", "arm", false},
|
||||
{"darwin", "arm64", false},
|
||||
{"windows", "arm", false},
|
||||
{"windows", "arm64", false},
|
||||
}
|
||||
for _, p := range platforms {
|
||||
t.Run(fmt.Sprintf("%v %v valid=%v", p.os, p.arch, p.valid), func(t *testing.T) {
|
||||
assert.Equal(t, p.valid, valid(buildtarget.New(p.os, p.arch, "")))
|
||||
})
|
||||
}
|
||||
}
|
@ -1,35 +0,0 @@
|
||||
package build
|
||||
|
||||
// list from https://golang.org/doc/install/source#environment
|
||||
var valids = []string{
|
||||
"androidarm",
|
||||
"darwin386",
|
||||
"darwinamd64",
|
||||
// "darwinarm", - requires admin rights and other ios stuff
|
||||
// "darwinarm64", - requires admin rights and other ios stuff
|
||||
"dragonflyamd64",
|
||||
"freebsd386",
|
||||
"freebsdamd64",
|
||||
"freebsdarm",
|
||||
"linux386",
|
||||
"linuxamd64",
|
||||
"linuxarm",
|
||||
"linuxarm64",
|
||||
"linuxppc64",
|
||||
"linuxppc64le",
|
||||
"linuxmips",
|
||||
"linuxmipsle",
|
||||
"linuxmips64",
|
||||
"linuxmips64le",
|
||||
"netbsd386",
|
||||
"netbsdamd64",
|
||||
"netbsdarm",
|
||||
"openbsd386",
|
||||
"openbsdamd64",
|
||||
"openbsdarm",
|
||||
"plan9386",
|
||||
"plan9amd64",
|
||||
"solarisamd64",
|
||||
"windows386",
|
||||
"windowsamd64",
|
||||
}
|
Reference in New Issue
Block a user