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

fixing more errors

This commit is contained in:
Carlos Alexandro Becker 2017-06-27 19:36:36 -03:00
parent ed5ccf9bdb
commit 4504cd4527
No known key found for this signature in database
GPG Key ID: E61E2F7DC14AB940
8 changed files with 41 additions and 33 deletions

View File

@ -58,9 +58,11 @@ func create(ctx *context.Context, platform, name string) error {
return err
}
}
var binary = ctx.Config.Build.Binary + ext.For(platform)
if err := archive.Add(binary, filepath.Join(folder, binary)); err != nil {
return err
for _, build := range ctx.Config.Builds {
var binary = build.Binary + ext.For(platform)
if err := archive.Add(binary, filepath.Join(folder, binary)); err != nil {
return err
}
}
ctx.AddArtifact(file.Name())
return nil

View File

@ -69,7 +69,6 @@ type templateData struct {
Repo config.Repo // FIXME: will not work for anything but github right now.
Tag string
Version string
Binary string
Caveats string
File string
Format string
@ -127,7 +126,7 @@ func buildFormula(ctx *context.Context, client client.Client) (bytes.Buffer, err
func doBuildFormula(data templateData) (bytes.Buffer, error) {
var out bytes.Buffer
tmpl, err := template.New(data.Binary).Parse(formula)
tmpl, err := template.New(data.Name).Parse(formula)
if err != nil {
return out, err
}
@ -150,13 +149,12 @@ func dataFor(ctx *context.Context, client client.Client) (result templateData, e
return
}
return templateData{
Name: formulaNameFor(ctx.Config.Build.Binary),
Name: formulaNameFor(ctx.Config.Name),
Desc: ctx.Config.Brew.Description,
Homepage: ctx.Config.Brew.Homepage,
Repo: ctx.Config.Release.GitHub,
Tag: ctx.Git.CurrentTag,
Version: ctx.Version,
Binary: ctx.Config.Build.Binary,
Caveats: ctx.Config.Brew.Caveats,
File: file,
Format: ctx.Config.Archive.Format, // TODO this can be broken by format_overrides

View File

@ -27,6 +27,7 @@ func (Pipe) Description() string {
// Run the pipe
func (Pipe) Run(ctx *context.Context) error {
for _, build := range ctx.Config.Builds {
log.WithField("build", build).Debug("building")
if err := runPipeOnBuild(ctx, build); err != nil {
return err
}
@ -41,11 +42,11 @@ func runPipeOnBuild(ctx *context.Context, build config.Build) error {
sem := make(chan bool, 4)
var g errgroup.Group
for _, target := range buildTargets(build) {
name, err := nameFor(ctx, target)
name, err := nameFor(ctx, build, target)
if err != nil {
return err
}
ctx.Archives[target.String()] = name
ctx.Archives[build.Binary+target.String()] = name
sem <- true
target := target
@ -78,7 +79,7 @@ func doBuild(ctx *context.Context, build config.Build, name string, target build
if build.Flags != "" {
cmd = append(cmd, strings.Fields(build.Flags)...)
}
flags, err := ldflags(ctx)
flags, err := ldflags(ctx, build)
if err != nil {
return err
}

View File

@ -5,6 +5,7 @@ import (
"text/template"
"time"
"github.com/goreleaser/goreleaser/config"
"github.com/goreleaser/goreleaser/context"
)
@ -15,7 +16,7 @@ type ldflagsData struct {
Version string
}
func ldflags(ctx *context.Context) (string, error) {
func ldflags(ctx *context.Context, build config.Build) (string, error) {
var data = ldflagsData{
Commit: ctx.Git.Commit,
Tag: ctx.Git.CurrentTag,
@ -23,7 +24,7 @@ func ldflags(ctx *context.Context) (string, error) {
Date: time.Now().UTC().Format(time.RFC3339),
}
var out bytes.Buffer
t, err := template.New("ldflags").Parse(ctx.Config.Build.Ldflags)
t, err := template.New("ldflags").Parse(build.Ldflags)
if err != nil {
return "", err
}

View File

@ -4,6 +4,7 @@ import (
"bytes"
"text/template"
"github.com/goreleaser/goreleaser/config"
"github.com/goreleaser/goreleaser/context"
)
@ -16,14 +17,14 @@ type nameData struct {
Binary string
}
func nameFor(ctx *context.Context, target buildTarget) (string, error) {
func nameFor(ctx *context.Context, build config.Build, target buildTarget) (string, error) {
var data = nameData{
Os: replace(ctx.Config.Archive.Replacements, target.goos),
Arch: replace(ctx.Config.Archive.Replacements, target.goarch),
Arm: replace(ctx.Config.Archive.Replacements, target.goarm),
Version: ctx.Version,
Tag: ctx.Git.CurrentTag,
Binary: ctx.Config.Build.Binary,
Binary: build.Binary,
}
var out bytes.Buffer

View File

@ -26,7 +26,7 @@ func (Pipe) Run(ctx *context.Context) (err error) {
file, err := os.OpenFile(
filepath.Join(
ctx.Config.Dist,
fmt.Sprintf("%v_checksums.txt", ctx.Config.Build.Binary),
fmt.Sprintf("%v_checksums.txt", ctx.Config.Name),
),
os.O_APPEND|os.O_WRONLY|os.O_CREATE|os.O_TRUNC,
0644,

View File

@ -66,10 +66,6 @@ func setReleaseDefaults(ctx *context.Context) error {
}
func setBuildDefaults(ctx *context.Context) {
if len(ctx.Config.Builds) == 0 {
ctx.Config.Builds = append(ctx.Config.Builds, ctx.Config.Build)
}
ctx.Config.Build = config.Build{}
for i, build := range ctx.Config.Builds {
ctx.Config.Builds[i] = buildWithDefaults(ctx, build)
}

View File

@ -3,6 +3,7 @@ package fpm
import (
"errors"
"fmt"
"os/exec"
"path/filepath"
@ -40,16 +41,19 @@ func (Pipe) Run(ctx *context.Context) error {
var g errgroup.Group
for _, format := range ctx.Config.FPM.Formats {
format := format
for _, goarch := range ctx.Config.Build.Goarch {
if ctx.Archives["linux"+goarch] == "" {
continue
for _, build := range ctx.Config.Builds {
for _, goarch := range build.Goarch {
var key = build.Binary + "linux" + goarch
if ctx.Archives[key] == "" {
continue
}
format := format
archive := ctx.Archives[key]
arch := goarchToUnix[goarch]
g.Go(func() error {
return create(ctx, format, archive, arch)
})
}
archive := ctx.Archives["linux"+goarch]
arch := goarchToUnix[goarch]
g.Go(func() error {
return create(ctx, format, archive, arch)
})
}
}
return g.Wait()
@ -58,13 +62,12 @@ func (Pipe) Run(ctx *context.Context) error {
func create(ctx *context.Context, format, archive, arch string) error {
var path = filepath.Join(ctx.Config.Dist, archive)
var file = path + "." + format
var name = ctx.Config.Build.Binary
log.WithField("file", file).Info("Creating")
var options = []string{
"--input-type", "dir",
"--output-type", format,
"--name", name,
"--name", ctx.Config.Name,
"--version", ctx.Version,
"--architecture", arch,
"--chdir", path,
@ -94,9 +97,15 @@ func create(ctx *context.Context, format, archive, arch string) error {
options = append(options, "--conflicts", conflict)
}
// This basically tells fpm to put the binary in the /usr/local/bin
// binary=/usr/local/bin/binary
options = append(options, name+"="+filepath.Join("/usr/local/bin", name))
for _, build := range ctx.Config.Builds {
// This basically tells fpm to put the binary in the /usr/local/bin
// binary=/usr/local/bin/binary
options = append(options, fmt.Sprintf(
"%s=%s",
build.Binary,
filepath.Join("/usr/local/bin", build.Binary),
))
}
if out, err := exec.Command("fpm", options...).CombinedOutput(); err != nil {
return errors.New(string(out))