1
0
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:
Carlos Alexandro Becker
2017-07-09 13:14:35 -03:00
parent 61930182c6
commit 485f71b51a
5 changed files with 107 additions and 109 deletions

View File

@ -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

View File

@ -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
}

View File

@ -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, "")))
})
}
}

View File

@ -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",
}