github.com/beauknowssoftware/makehcl@v0.0.0-20200322000747-1b9bb1e1c008/build/cross_platform.hcl (about) 1 // cross platform binaries 2 var { 3 go_envs = [ 4 { 5 goos : "darwin", 6 goarch : "386" 7 }, 8 { 9 goos : "darwin", 10 goarch : "amd64" 11 }, 12 { 13 goos : "linux", 14 goarch : "386" 15 }, 16 { 17 goos : "linux", 18 goarch : "amd64" 19 }, 20 ] 21 env_cmds = flatten([ 22 for cmd in var.cmds : [ 23 for env in var.go_envs : { 24 path : cmd.path, 25 bin : path("bin/", env.goos, env.goarch, basename(cmd.path)), 26 env : env, 27 } 28 ] 29 ]) 30 } 31 dynamic rule { 32 alias = "env_bins" 33 for_each = var.env_cmds 34 as = "cmd" 35 36 target = cmd.bin 37 dependencies = ".test" 38 command = "go build -o ${target} ./${cmd.path}" 39 40 environment = { 41 GOOS = cmd.env.goos 42 GOARCH = cmd.env.goarch 43 } 44 }