1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-03-17 20:47:50 +02:00

multiple builds

This commit is contained in:
Carlos Alexandro Becker 2016-12-29 14:12:54 -02:00
parent 9c255400fe
commit c76c12721f
No known key found for this signature in database
GPG Key ID: E61E2F7DC14AB940
3 changed files with 45 additions and 25 deletions

View File

@ -2,42 +2,53 @@ package build
import (
"bytes"
"errors"
"fmt"
"os"
"os/exec"
"github.com/goreleaser/releaser/config"
"github.com/goreleaser/releaser/uname"
"golang.org/x/sync/errgroup"
)
func Build(version string, config config.ProjectConfig) error {
var g errgroup.Group
for _, bos := range config.Build.Oses {
for _, arch := range config.Build.Arches {
fmt.Println("Building", bos+"/"+arch, "...")
cmd := exec.Command(
"go",
"build",
"-ldflags=-s -w -X main.version="+version,
"-o", target(bos, arch, config.BinaryName),
config.Build.Main,
)
cmd.Env = append(
cmd.Env,
"GOOS="+bos,
"GOARCH="+arch,
"GOROOT="+os.Getenv("GOROOT"),
"GOPATH="+os.Getenv("GOPATH"),
)
var stdout bytes.Buffer
cmd.Stdout = &stdout
cmd.Stderr = &stdout
err := cmd.Run()
if err != nil {
fmt.Println(stdout.String())
return err
}
bos := bos
arch := arch
g.Go(func() error {
return build(bos, arch, version, config)
})
}
}
return g.Wait()
}
func build(bos, arch, version string, config config.ProjectConfig) error {
fmt.Println("Building", bos+"/"+arch, "...")
cmd := exec.Command(
"go",
"build",
"-ldflags=-s -w -X main.version="+version,
"-o", target(bos, arch, config.BinaryName),
config.Build.Main,
)
cmd.Env = append(
cmd.Env,
"GOOS="+bos,
"GOARCH="+arch,
"GOROOT="+os.Getenv("GOROOT"),
"GOPATH="+os.Getenv("GOPATH"),
)
var stdout bytes.Buffer
cmd.Stdout = &stdout
cmd.Stderr = &stdout
err := cmd.Run()
if err != nil {
return errors.New(stdout.String())
}
return nil
}

10
glide.lock generated
View File

@ -1,5 +1,5 @@
hash: d994e2b869e9f8e43e94f45a805e7443c459a8357f4d0935c4c96171bb54265f
updated: 2016-12-28T23:26:07.891361125-02:00
hash: 99aa967804549d50c1b897c28c555c0bb10a3045f68b3024f926758be9d0a5f8
updated: 2016-12-29T14:09:53.896252195-02:00
imports:
- name: github.com/golang/protobuf
version: df1d3ca07d2d07bba352d5b73c4313b4e2a6203e
@ -13,6 +13,8 @@ imports:
version: 9235644dd9e52eeae6fa48efd539fdc351a0af53
subpackages:
- query
- name: github.com/pkg/errors
version: 248dadf4e9068a0b3e79f02ed0a610d935de5302
- name: golang.org/x/net
version: 6d3beaea10370160dea67f5c9327ed791afd5389
subpackages:
@ -21,6 +23,10 @@ imports:
version: 1e695b1c8febf17aad3bfa7bf0a819ef94b98ad5
subpackages:
- internal
- name: golang.org/x/sync
version: 316e794f7b5e3df4e95175a45a5fb8b12f85cb4f
subpackages:
- errgroup
- name: google.golang.org/appengine
version: 3f4dbbc0ec153a39878fd524ece9f39732bd4998
subpackages:

View File

@ -5,6 +5,9 @@ import:
- github
- package: golang.org/x/oauth2
- package: gopkg.in/yaml.v1
- package: golang.org/x/sync
subpackages:
- errgroup
testImport:
- package: github.com/stretchr/testify
version: ~1.1.4