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:
parent
ed5ccf9bdb
commit
4504cd4527
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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,
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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))
|
||||
|
Loading…
x
Reference in New Issue
Block a user