Commit c669de11 by fg2it

add options to support cross build

parent 62a2f80f
...@@ -12,7 +12,7 @@ grunt karma:dev ...@@ -12,7 +12,7 @@ grunt karma:dev
### Run tests for backend assets before commit ### Run tests for backend assets before commit
``` ```
test -z "$(gofmt -s -l . | grep -v vendor/src/ | tee /dev/stderr)" test -z "$(gofmt -s -l . | grep -v -E 'vendor/(github.com|golang.org|gopkg.in)' | tee /dev/stderr)"
``` ```
### Run tests for frontend assets before commit ### Run tests for frontend assets before commit
......
...@@ -25,11 +25,16 @@ var ( ...@@ -25,11 +25,16 @@ var (
versionRe = regexp.MustCompile(`-[0-9]{1,3}-g[0-9a-f]{5,10}`) versionRe = regexp.MustCompile(`-[0-9]{1,3}-g[0-9a-f]{5,10}`)
goarch string goarch string
goos string goos string
gocc string
gocxx string
cgo string
pkgArch string
version string = "v1" version string = "v1"
// deb & rpm does not support semver so have to handle their version a little differently // deb & rpm does not support semver so have to handle their version a little differently
linuxPackageVersion string = "v1" linuxPackageVersion string = "v1"
linuxPackageIteration string = "" linuxPackageIteration string = ""
race bool race bool
phjsToRelease string
workingDir string workingDir string
binaries []string = []string{"grafana-server", "grafana-cli"} binaries []string = []string{"grafana-server", "grafana-cli"}
) )
...@@ -47,6 +52,11 @@ func main() { ...@@ -47,6 +52,11 @@ func main() {
flag.StringVar(&goarch, "goarch", runtime.GOARCH, "GOARCH") flag.StringVar(&goarch, "goarch", runtime.GOARCH, "GOARCH")
flag.StringVar(&goos, "goos", runtime.GOOS, "GOOS") flag.StringVar(&goos, "goos", runtime.GOOS, "GOOS")
flag.StringVar(&gocc, "cc", "", "CC")
flag.StringVar(&gocxx, "cxx", "", "CXX")
flag.StringVar(&cgo, "cgo-enabled", "", "CGO_ENABLED")
flag.StringVar(&pkgArch, "pkg-arch", "", "PKG ARCH")
flag.StringVar(&phjsToRelease, "phjs", "", "PhantomJS binary")
flag.BoolVar(&race, "race", race, "Use race detector") flag.BoolVar(&race, "race", race, "Use race detector")
flag.Parse() flag.Parse()
...@@ -73,15 +83,15 @@ func main() { ...@@ -73,15 +83,15 @@ func main() {
grunt("test") grunt("test")
case "package": case "package":
grunt("release", fmt.Sprintf("--pkgVer=%v-%v", linuxPackageVersion, linuxPackageIteration)) grunt(gruntBuildArg("release")...)
createLinuxPackages() createLinuxPackages()
case "pkg-rpm": case "pkg-rpm":
grunt("release") grunt(gruntBuildArg("release")...)
createRpmPackages() createRpmPackages()
case "pkg-deb": case "pkg-deb":
grunt("release") grunt(gruntBuildArg("release")...)
createDebPackages() createDebPackages()
case "latest": case "latest":
...@@ -258,6 +268,10 @@ func createPackage(options linuxPackageOptions) { ...@@ -258,6 +268,10 @@ func createPackage(options linuxPackageOptions) {
"-p", "./dist", "-p", "./dist",
} }
if pkgArch != "" {
args = append(args, "-a", pkgArch)
}
if linuxPackageIteration != "" { if linuxPackageIteration != "" {
args = append(args, "--iteration", linuxPackageIteration) args = append(args, "--iteration", linuxPackageIteration)
} }
...@@ -307,9 +321,20 @@ func grunt(params ...string) { ...@@ -307,9 +321,20 @@ func grunt(params ...string) {
runPrint("./node_modules/.bin/grunt", params...) runPrint("./node_modules/.bin/grunt", params...)
} }
func gruntBuildArg(task string) []string {
args := []string{task, fmt.Sprintf("--pkgVer=%v-%v", linuxPackageVersion, linuxPackageIteration)}
if pkgArch != "" {
args = append(args, fmt.Sprintf("--arch=%v", pkgArch))
}
if phjsToRelease != "" {
args = append(args, fmt.Sprintf("--phjsToRelease=%v", phjsToRelease))
}
return args
}
func setup() { func setup() {
runPrint("go", "get", "-v", "github.com/kardianos/govendor") runPrint("go", "get", "-v", "github.com/kardianos/govendor")
runPrint("go", "get", "-v", "github.com/blang/semver") runPrint("go", "get", "-v", "github.com/blang/semver")
runPrint("go", "get", "-v", "github.com/mattn/go-sqlite3") runPrint("go", "get", "-v", "github.com/mattn/go-sqlite3")
runPrint("go", "install", "-v", "github.com/mattn/go-sqlite3") runPrint("go", "install", "-v", "github.com/mattn/go-sqlite3")
} }
...@@ -382,6 +407,15 @@ func setBuildEnv() { ...@@ -382,6 +407,15 @@ func setBuildEnv() {
if goarch == "386" { if goarch == "386" {
os.Setenv("GO386", "387") os.Setenv("GO386", "387")
} }
if cgo != "" {
os.Setenv("CGO_ENABLED", cgo)
}
if gocc != "" {
os.Setenv("CC", gocc)
}
if gocxx != "" {
os.Setenv("CXX", gocxx)
}
} }
func getGitSha() string { func getGitSha() string {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment