1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-02-03 13:11:48 +02:00

feat: ArtifactExt as a template field

This commit is contained in:
Carlos A Becker 2022-08-01 16:04:20 -03:00
parent a05b776334
commit a31b4aa0ae
No known key found for this signature in database
GPG Key ID: E61E2F7DC14AB940
3 changed files with 8 additions and 0 deletions

View File

@ -63,6 +63,7 @@ const (
mips = "Mips" mips = "Mips"
binary = "Binary" binary = "Binary"
artifactName = "ArtifactName" artifactName = "ArtifactName"
artifactExt = "ArtifactExt"
artifactPath = "ArtifactPath" artifactPath = "ArtifactPath"
// build keys. // build keys.
@ -146,6 +147,7 @@ func (t *Template) WithArtifact(a *artifact.Artifact, replacements map[string]st
t.fields[amd64] = replace(replacements, a.Goamd64) t.fields[amd64] = replace(replacements, a.Goamd64)
t.fields[binary] = artifact.ExtraOr(*a, binary, t.fields[projectName].(string)) t.fields[binary] = artifact.ExtraOr(*a, binary, t.fields[projectName].(string))
t.fields[artifactName] = a.Name t.fields[artifactName] = a.Name
t.fields[artifactExt] = artifact.ExtraOr(*a, artifact.ExtraExt, "")
t.fields[artifactPath] = a.Path t.fields[artifactPath] = a.Path
return t return t
} }

View File

@ -69,6 +69,9 @@ func TestWithArtifact(t *testing.T) {
"another line": "{{ .TagBody }}", "another line": "{{ .TagBody }}",
"runtime: " + runtime.GOOS: "runtime: {{ .Runtime.Goos }}", "runtime: " + runtime.GOOS: "runtime: {{ .Runtime.Goos }}",
"runtime: " + runtime.GOARCH: "runtime: {{ .Runtime.Goarch }}", "runtime: " + runtime.GOARCH: "runtime: {{ .Runtime.Goarch }}",
"artifact name: not-this-binary": "artifact name: {{ .ArtifactName }}",
"artifact ext: .exe": "artifact ext: {{ .ArtifactExt }}",
"artifact path: /tmp/foo.exe": "artifact path: {{ .ArtifactPath }}",
"remove this": "{{ filter .Env.MULTILINE \".*remove.*\" }}", "remove this": "{{ filter .Env.MULTILINE \".*remove.*\" }}",
"something with\nmultiple lines\nto test things": "{{ reverseFilter .Env.MULTILINE \".*remove.*\" }}", "something with\nmultiple lines\nto test things": "{{ reverseFilter .Env.MULTILINE \".*remove.*\" }}",
@ -80,6 +83,7 @@ func TestWithArtifact(t *testing.T) {
result, err := New(ctx).WithArtifact( result, err := New(ctx).WithArtifact(
&artifact.Artifact{ &artifact.Artifact{
Name: "not-this-binary", Name: "not-this-binary",
Path: "/tmp/foo.exe",
Goarch: "amd64", Goarch: "amd64",
Goos: "linux", Goos: "linux",
Goarm: "6", Goarm: "6",
@ -87,6 +91,7 @@ func TestWithArtifact(t *testing.T) {
Goamd64: "v3", Goamd64: "v3",
Extra: map[string]interface{}{ Extra: map[string]interface{}{
artifact.ExtraBinary: "binary", artifact.ExtraBinary: "binary",
artifact.ExtraExt: ".exe",
}, },
}, },
map[string]string{"linux": "Linux"}, map[string]string{"linux": "Linux"},

View File

@ -72,6 +72,7 @@ may have some extra fields:
| `.Binary` | binary name | | `.Binary` | binary name |
| `.ArtifactName` | archive name | | `.ArtifactName` | archive name |
| `.ArtifactPath` | absolute path to artifact | | `.ArtifactPath` | absolute path to artifact |
| `.ArtifactExt` | binary extension (e.g. `.exe`) |
[^8]: Might have been replaced by `archives.replacements`. [^8]: Might have been replaced by `archives.replacements`.