diff --git a/internal/builders/golang/build_test.go b/internal/builders/golang/build_test.go index 45cf80345fa..3841cd0282b 100644 --- a/internal/builders/golang/build_test.go +++ b/internal/builders/golang/build_test.go @@ -91,6 +91,7 @@ func TestBuild(t *testing.T) { "darwin_amd64", "windows_amd64", "linux_arm_6", + "js_wasm", }, Asmflags: []string{".=", "all="}, Gcflags: []string{"all="}, @@ -107,6 +108,9 @@ func TestBuild(t *testing.T) { if strings.HasPrefix(target, "windows") { ext = ".exe" } + if target == "js_wasm" { + ext = ".wasm" + } var err = Default.Build(ctx, build, api.Options{ Target: target, Name: build.Binary, @@ -165,6 +169,18 @@ func TestBuild(t *testing.T) { "ID": "foo", }, }, + { + Name: "foo", + Path: filepath.Join(folder, "dist", "js_wasm", "foo"), + Goos: "js", + Goarch: "wasm", + Type: artifact.Binary, + Extra: map[string]interface{}{ + "Ext": ".wasm", + "Binary": "foo", + "ID": "foo", + }, + }, }) } diff --git a/internal/builders/golang/targets.go b/internal/builders/golang/targets.go index d788b22573e..b13baa19ca0 100644 --- a/internal/builders/golang/targets.go +++ b/internal/builders/golang/targets.go @@ -102,6 +102,7 @@ var validTargets = []string{ "freebsd386", "freebsdamd64", "freebsdarm", + "jswasm", "linux386", "linuxamd64", "linuxarm", diff --git a/internal/builders/golang/targets_test.go b/internal/builders/golang/targets_test.go index a3dc1af8b6b..1bbe7c642e6 100644 --- a/internal/builders/golang/targets_test.go +++ b/internal/builders/golang/targets_test.go @@ -15,12 +15,14 @@ func TestAllBuildTargets(t *testing.T) { "darwin", "freebsd", "openbsd", + "js", }, Goarch: []string{ "386", "amd64", "arm", "arm64", + "wasm", }, Goarm: []string{ "6", @@ -52,6 +54,7 @@ func TestAllBuildTargets(t *testing.T) { "freebsd_arm_7", "openbsd_386", "openbsd_amd64", + "js_wasm", }, matrix(build)) } @@ -91,6 +94,7 @@ func TestGoosGoarchCombos(t *testing.T) { {"solaris", "amd64", true}, {"windows", "386", true}, {"windows", "amd64", true}, + {"js", "wasm", true}, // invalid targets {"darwin", "arm", false}, {"darwin", "arm64", false}, diff --git a/internal/pipe/build/build.go b/internal/pipe/build/build.go index 10159274c2d..18f0686f336 100644 --- a/internal/pipe/build/build.go +++ b/internal/pipe/build/build.go @@ -131,6 +131,9 @@ func extFor(target string) string { if strings.Contains(target, "windows") { return ".exe" } + if target == "js_wasm" { + return ".wasm" + } return "" } diff --git a/internal/pipe/build/build_test.go b/internal/pipe/build/build_test.go index 3e7b2336d8c..061b736b79f 100644 --- a/internal/pipe/build/build_test.go +++ b/internal/pipe/build/build_test.go @@ -340,6 +340,10 @@ func TestExtWindows(t *testing.T) { assert.Equal(t, ".exe", extFor("windows_386")) } +func TestExtWasm(t *testing.T) { + assert.Equal(t, ".wasm", extFor("js_wasm")) +} + func TestExtOthers(t *testing.T) { assert.Empty(t, "", extFor("linux_amd64")) assert.Empty(t, "", extFor("linuxwin_386"))