1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-09-16 09:26:52 +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
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 return err
} }
} }
var binary = ctx.Config.Build.Binary + ext.For(platform) for _, build := range ctx.Config.Builds {
if err := archive.Add(binary, filepath.Join(folder, binary)); err != nil { var binary = build.Binary + ext.For(platform)
return err if err := archive.Add(binary, filepath.Join(folder, binary)); err != nil {
return err
}
} }
ctx.AddArtifact(file.Name()) ctx.AddArtifact(file.Name())
return nil return nil

View File

@@ -69,7 +69,6 @@ type templateData struct {
Repo config.Repo // FIXME: will not work for anything but github right now. Repo config.Repo // FIXME: will not work for anything but github right now.
Tag string Tag string
Version string Version string
Binary string
Caveats string Caveats string
File string File string
Format 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) { func doBuildFormula(data templateData) (bytes.Buffer, error) {
var out bytes.Buffer var out bytes.Buffer
tmpl, err := template.New(data.Binary).Parse(formula) tmpl, err := template.New(data.Name).Parse(formula)
if err != nil { if err != nil {
return out, err return out, err
} }
@@ -150,13 +149,12 @@ func dataFor(ctx *context.Context, client client.Client) (result templateData, e
return return
} }
return templateData{ return templateData{
Name: formulaNameFor(ctx.Config.Build.Binary), Name: formulaNameFor(ctx.Config.Name),
Desc: ctx.Config.Brew.Description, Desc: ctx.Config.Brew.Description,
Homepage: ctx.Config.Brew.Homepage, Homepage: ctx.Config.Brew.Homepage,
Repo: ctx.Config.Release.GitHub, Repo: ctx.Config.Release.GitHub,
Tag: ctx.Git.CurrentTag, Tag: ctx.Git.CurrentTag,
Version: ctx.Version, Version: ctx.Version,
Binary: ctx.Config.Build.Binary,
Caveats: ctx.Config.Brew.Caveats, Caveats: ctx.Config.Brew.Caveats,
File: file, File: file,
Format: ctx.Config.Archive.Format, // TODO this can be broken by format_overrides 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 // Run the pipe
func (Pipe) Run(ctx *context.Context) error { func (Pipe) Run(ctx *context.Context) error {
for _, build := range ctx.Config.Builds { for _, build := range ctx.Config.Builds {
log.WithField("build", build).Debug("building")
if err := runPipeOnBuild(ctx, build); err != nil { if err := runPipeOnBuild(ctx, build); err != nil {
return err return err
} }
@@ -41,11 +42,11 @@ func runPipeOnBuild(ctx *context.Context, build config.Build) error {
sem := make(chan bool, 4) sem := make(chan bool, 4)
var g errgroup.Group var g errgroup.Group
for _, target := range buildTargets(build) { for _, target := range buildTargets(build) {
name, err := nameFor(ctx, target) name, err := nameFor(ctx, build, target)
if err != nil { if err != nil {
return err return err
} }
ctx.Archives[target.String()] = name ctx.Archives[build.Binary+target.String()] = name
sem <- true sem <- true
target := target target := target
@@ -78,7 +79,7 @@ func doBuild(ctx *context.Context, build config.Build, name string, target build
if build.Flags != "" { if build.Flags != "" {
cmd = append(cmd, strings.Fields(build.Flags)...) cmd = append(cmd, strings.Fields(build.Flags)...)
} }
flags, err := ldflags(ctx) flags, err := ldflags(ctx, build)
if err != nil { if err != nil {
return err return err
} }

View File

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

View File

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

View File

@@ -26,7 +26,7 @@ func (Pipe) Run(ctx *context.Context) (err error) {
file, err := os.OpenFile( file, err := os.OpenFile(
filepath.Join( filepath.Join(
ctx.Config.Dist, 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, os.O_APPEND|os.O_WRONLY|os.O_CREATE|os.O_TRUNC,
0644, 0644,

View File

@@ -66,10 +66,6 @@ func setReleaseDefaults(ctx *context.Context) error {
} }
func setBuildDefaults(ctx *context.Context) { 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 { for i, build := range ctx.Config.Builds {
ctx.Config.Builds[i] = buildWithDefaults(ctx, build) ctx.Config.Builds[i] = buildWithDefaults(ctx, build)
} }

View File

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