1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-02-05 13:15:26 +02:00

fix: added time func to ldflags template

This commit is contained in:
Carlos Alexandro Becker 2018-04-12 15:16:16 -03:00 committed by Carlos Alexandro Becker
parent d701179975
commit 5a0b6c4608
4 changed files with 13 additions and 4 deletions

View File

@ -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}}

View File

@ -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 {

View File

@ -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"`)
}

View File

@ -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)
},
}
}