From cc46a0b3473484a69eb3114508c728c532a901f8 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Thu, 23 Mar 2017 14:20:24 -0300 Subject: [PATCH] fixed pre/post build hooks --- pipeline/build/build.go | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/pipeline/build/build.go b/pipeline/build/build.go index dde7fd81a..3f2b46880 100644 --- a/pipeline/build/build.go +++ b/pipeline/build/build.go @@ -5,6 +5,7 @@ import ( "log" "os" "os/exec" + "runtime" "strings" "github.com/goreleaser/goreleaser/context" @@ -21,6 +22,13 @@ func (Pipe) Description() string { // Run the pipe func (Pipe) Run(ctx *context.Context) error { + if ctx.Config.Build.Hooks.Pre != "" { + log.Println("Running pre-build hook", ctx.Config.Build.Hooks.Pre) + cmd := strings.Fields(ctx.Config.Build.Hooks.Pre) + if err := run(runtime.GOOS, runtime.GOARCH, cmd); err != nil { + return err + } + } var g errgroup.Group for _, goos := range ctx.Config.Build.Goos { for _, goarch := range ctx.Config.Build.Goarch { @@ -39,20 +47,21 @@ func (Pipe) Run(ctx *context.Context) error { }) } } - return g.Wait() + err := g.Wait() + if ctx.Config.Build.Hooks.Post != "" { + log.Println("Running post-build hook", ctx.Config.Build.Hooks.Post) + cmd := strings.Fields(ctx.Config.Build.Hooks.Post) + if err := run(runtime.GOOS, runtime.GOARCH, cmd); err != nil { + return err + } + } + return err } func build(name, goos, goarch string, ctx *context.Context) error { ldflags := ctx.Config.Build.Ldflags + " -X main.version=" + ctx.Version output := "dist/" + name + "/" + ctx.Config.Build.Binary + extFor(goos) log.Println("Building", output) - if ctx.Config.Build.Hooks.Pre != "" { - log.Println("Running pre-build hook", ctx.Config.Build.Hooks.Pre) - cmd := strings.Fields(ctx.Config.Build.Hooks.Pre) - if err := run(goos, goarch, cmd); err != nil { - return err - } - } cmd := []string{"go", "build"} if ctx.Config.Build.Flags != "" { cmd = append(cmd, strings.Fields(ctx.Config.Build.Flags)...) @@ -61,13 +70,6 @@ func build(name, goos, goarch string, ctx *context.Context) error { if err := run(goos, goarch, cmd); err != nil { return err } - if ctx.Config.Build.Hooks.Post != "" { - log.Println("Running post-build hook", ctx.Config.Build.Hooks.Post) - cmd := strings.Fields(ctx.Config.Build.Hooks.Post) - if err := run(goos, goarch, cmd); err != nil { - return err - } - } return nil }