diff --git a/docs/050-build.md b/docs/050-build.md index ac82aec90..d389a1ea0 100644 --- a/docs/050-build.md +++ b/docs/050-build.md @@ -38,7 +38,9 @@ builds: # - Commit # - Tag # - Version (Git tag without `v` prefix) - # Date format is `2006-01-02_15:04:05`. + # Date format is `2006-01-02_15:04:05`. You can use `time "2006-01-02"` to + # if you need custom formats. + # # Default is `-s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}`. ldflags: -s -w -X main.build={{.Version}} diff --git a/internal/builders/golang/build.go b/internal/builders/golang/build.go index cdf569546..2e371d621 100644 --- a/internal/builders/golang/build.go +++ b/internal/builders/golang/build.go @@ -106,6 +106,11 @@ func ldflags(ctx *context.Context, build config.Build) (string, error) { } var out bytes.Buffer t, err := template.New("ldflags"). + Funcs(template.FuncMap{ + "time": func(s string) string { + return time.Now().UTC().Format(s) + }, + }). Option("missingkey=error"). Parse(build.Ldflags) if err != nil { diff --git a/internal/builders/golang/build_test.go b/internal/builders/golang/build_test.go index 1d94a2e74..c9b216989 100644 --- a/internal/builders/golang/build_test.go +++ b/internal/builders/golang/build_test.go @@ -306,7 +306,7 @@ func TestLdFlagsFullTemplate(t *testing.T) { var config = config.Project{ Builds: []config.Build{ { - Ldflags: `-s -w -X main.version={{.Version}} -X main.tag={{.Tag}} -X main.date={{.Date}} -X main.commit={{.Commit}} -X "main.foo={{.Env.FOO}}"`, + Ldflags: `-s -w -X main.version={{.Version}} -X main.tag={{.Tag}} -X main.date={{.Date}} -X main.commit={{.Commit}} -X "main.foo={{.Env.FOO}}" -X main.time={{ time "20060102" }}`, }, }, } @@ -325,7 +325,9 @@ func TestLdFlagsFullTemplate(t *testing.T) { assert.Contains(t, flags, "-X main.version=1.2.3") assert.Contains(t, flags, "-X main.tag=v1.2.3") assert.Contains(t, flags, "-X main.commit=123") - assert.Contains(t, flags, "-X main.date=") + // TODO: this will break in 2019 + assert.Contains(t, flags, "-X main.date=2018") + assert.Contains(t, flags, "-X main.time=2018") assert.Contains(t, flags, `-X "main.foo=123"`) } diff --git a/internal/client/name.go b/internal/client/name.go index ee65b0c91..236f307bf 100644 --- a/internal/client/name.go +++ b/internal/client/name.go @@ -30,7 +30,7 @@ func releaseTitle(ctx *context.Context) (string, error) { func mkFuncMap() template.FuncMap { return template.FuncMap{ "time": func(s string) string { - return time.Now().Format(s) + return time.Now().UTC().Format(s) }, } }