You've already forked goreleaser
mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-09-16 09:26:52 +02:00
moved naming logic to another pkg
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
package build
|
||||
package name
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
@@ -16,11 +16,11 @@ type nameData struct {
|
||||
Binary string
|
||||
}
|
||||
|
||||
func nameFor(ctx *context.Context, target buildTarget) (string, error) {
|
||||
func For(ctx *context.Context, goos, goarch, goarm string) (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),
|
||||
Os: replace(ctx.Config.Archive.Replacements, goos),
|
||||
Arch: replace(ctx.Config.Archive.Replacements, goarch),
|
||||
Arm: replace(ctx.Config.Archive.Replacements, goarm),
|
||||
Version: ctx.Version,
|
||||
Tag: ctx.Git.CurrentTag,
|
||||
Binary: ctx.Config.Name,
|
@@ -1,4 +1,4 @@
|
||||
package build
|
||||
package name
|
||||
|
||||
import (
|
||||
"testing"
|
||||
@@ -20,9 +20,7 @@ func TestNameFor(t *testing.T) {
|
||||
"amd64": "x86_64",
|
||||
},
|
||||
},
|
||||
Build: config.Build{
|
||||
Binary: "test",
|
||||
},
|
||||
Name: "test",
|
||||
}
|
||||
var ctx = &context.Context{
|
||||
Config: config,
|
||||
@@ -32,30 +30,26 @@ func TestNameFor(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
name, err := nameFor(ctx, buildTarget{"darwin", "amd64", ""})
|
||||
name, err := For(ctx, "darwin", "amd64", "")
|
||||
assert.NoError(err)
|
||||
assert.Equal("test_Darwin_x86_64_v1.2.3_1.2.3", name)
|
||||
}
|
||||
|
||||
func TestInvalidNameTemplate(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
var config = config.Project{
|
||||
Archive: config.Archive{
|
||||
NameTemplate: "{{.Binary}_{{.Os}}_{{.Arch}}_{{.Version}}",
|
||||
},
|
||||
Build: config.Build{
|
||||
Binary: "test",
|
||||
},
|
||||
}
|
||||
var assert = assert.New(t)
|
||||
var ctx = &context.Context{
|
||||
Config: config,
|
||||
Config: config.Project{
|
||||
Archive: config.Archive{
|
||||
NameTemplate: "{{.Binary}_{{.Os}}_{{.Arch}}_{{.Version}}",
|
||||
},
|
||||
Name: "test",
|
||||
},
|
||||
Git: context.GitInfo{
|
||||
CurrentTag: "v1.2.3",
|
||||
},
|
||||
}
|
||||
|
||||
_, err := nameFor(ctx, buildTarget{"darwin", "amd64", ""})
|
||||
_, err := For(ctx, "darwin", "amd64", "")
|
||||
assert.Error(err)
|
||||
}
|
||||
|
||||
@@ -66,19 +60,20 @@ func TestNameDefaltTemplate(t *testing.T) {
|
||||
Archive: config.Archive{
|
||||
NameTemplate: defaults.NameTemplate,
|
||||
},
|
||||
Build: config.Build{
|
||||
Binary: "test",
|
||||
},
|
||||
Name: "test",
|
||||
},
|
||||
Version: "1.2.3",
|
||||
}
|
||||
type buildTarget struct {
|
||||
goos, goarch, goarm string
|
||||
}
|
||||
for key, target := range map[string]buildTarget{
|
||||
"test_1.2.3_darwin_amd64": {"darwin", "amd64", ""},
|
||||
"test_1.2.3_linux_arm64": {"linux", "arm64", ""},
|
||||
"test_1.2.3_linux_armv7": {"linux", "arm", "7"},
|
||||
} {
|
||||
t.Run(key, func(t *testing.T) {
|
||||
name, err := nameFor(ctx, target)
|
||||
name, err := For(ctx, target.goos, target.goarch, target.goarm)
|
||||
assert.NoError(err)
|
||||
assert.Equal(key, name)
|
||||
})
|
Reference in New Issue
Block a user