|
|
|
@ -27,8 +27,7 @@ var ( |
|
|
|
|
goarch string |
|
|
|
|
goos string |
|
|
|
|
gocc string |
|
|
|
|
gocxx string |
|
|
|
|
cgo string |
|
|
|
|
cgo bool |
|
|
|
|
pkgArch string |
|
|
|
|
version string = "v1" |
|
|
|
|
// deb & rpm does not support semver so have to handle their version a little differently
|
|
|
|
@ -53,8 +52,7 @@ func main() { |
|
|
|
|
flag.StringVar(&goarch, "goarch", runtime.GOARCH, "GOARCH") |
|
|
|
|
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.BoolVar(&cgo, "cgo-enabled", cgo, "Enable cgo") |
|
|
|
|
flag.StringVar(&pkgArch, "pkg-arch", "", "PKG ARCH") |
|
|
|
|
flag.StringVar(&phjsToRelease, "phjs", "", "PhantomJS binary") |
|
|
|
|
flag.BoolVar(&race, "race", race, "Use race detector") |
|
|
|
@ -93,20 +91,24 @@ func main() { |
|
|
|
|
build("grafana-server", "./pkg/cmd/grafana-server", []string{}) |
|
|
|
|
|
|
|
|
|
case "build": |
|
|
|
|
clean() |
|
|
|
|
//clean()
|
|
|
|
|
for _, binary := range binaries { |
|
|
|
|
build(binary, "./pkg/cmd/"+binary, []string{}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
case "build-frontend": |
|
|
|
|
grunt(gruntBuildArg("build")...) |
|
|
|
|
|
|
|
|
|
case "test": |
|
|
|
|
test("./pkg/...") |
|
|
|
|
grunt("test") |
|
|
|
|
|
|
|
|
|
case "package": |
|
|
|
|
grunt(gruntBuildArg("release")...) |
|
|
|
|
if runtime.GOOS != "windows" { |
|
|
|
|
createLinuxPackages() |
|
|
|
|
} |
|
|
|
|
grunt(gruntBuildArg("build")...) |
|
|
|
|
packageGrafana() |
|
|
|
|
|
|
|
|
|
case "package-only": |
|
|
|
|
packageGrafana() |
|
|
|
|
|
|
|
|
|
case "pkg-rpm": |
|
|
|
|
grunt(gruntBuildArg("release")...) |
|
|
|
@ -131,6 +133,22 @@ func main() { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func packageGrafana() { |
|
|
|
|
platformArg := fmt.Sprintf("--platform=%v", goos) |
|
|
|
|
previousPkgArch := pkgArch |
|
|
|
|
if pkgArch == "" { |
|
|
|
|
pkgArch = goarch |
|
|
|
|
} |
|
|
|
|
postProcessArgs := gruntBuildArg("package") |
|
|
|
|
postProcessArgs = append(postProcessArgs, platformArg) |
|
|
|
|
grunt(postProcessArgs...) |
|
|
|
|
pkgArch = previousPkgArch |
|
|
|
|
|
|
|
|
|
if goos == "linux" && goarch == "amd64"{ |
|
|
|
|
createLinuxPackages() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func makeLatestDistCopies() { |
|
|
|
|
files, err := ioutil.ReadDir("dist") |
|
|
|
|
if err != nil { |
|
|
|
@ -138,9 +156,9 @@ func makeLatestDistCopies() { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
latestMapping := map[string]string{ |
|
|
|
|
".deb": "dist/grafana_latest_amd64.deb", |
|
|
|
|
".rpm": "dist/grafana-latest-1.x86_64.rpm", |
|
|
|
|
".tar.gz": "dist/grafana-latest.linux-x64.tar.gz", |
|
|
|
|
"_amd64.deb": "dist/grafana_latest_amd64.deb", |
|
|
|
|
".x86_64.rpm": "dist/grafana-latest-1.x86_64.rpm", |
|
|
|
|
".linux-amd64.tar.gz": "dist/grafana-latest.linux-x64.tar.gz", |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for _, file := range files { |
|
|
|
@ -386,7 +404,8 @@ func test(pkg string) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func build(binaryName, pkg string, tags []string) { |
|
|
|
|
binary := "./bin/" + binaryName |
|
|
|
|
binary := fmt.Sprintf("./bin/%s-%s/%s", goos, goarch, binaryName) |
|
|
|
|
|
|
|
|
|
if goos == "windows" { |
|
|
|
|
binary += ".exe" |
|
|
|
|
} |
|
|
|
@ -408,6 +427,7 @@ func build(binaryName, pkg string, tags []string) { |
|
|
|
|
if !isDev { |
|
|
|
|
setBuildEnv() |
|
|
|
|
runPrint("go", "version") |
|
|
|
|
fmt.Printf("Targeting %s/%s\n", goos, goarch) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
runPrint("go", args...) |
|
|
|
@ -451,6 +471,14 @@ func clean() { |
|
|
|
|
|
|
|
|
|
func setBuildEnv() { |
|
|
|
|
os.Setenv("GOOS", goos) |
|
|
|
|
if goos == "windows" { |
|
|
|
|
// require windows >=7
|
|
|
|
|
os.Setenv("CGO_CFLAGS", "-D_WIN32_WINNT=0x0601") |
|
|
|
|
} |
|
|
|
|
if goarch != "amd64" || goos != "linux" { |
|
|
|
|
// needed for all other archs
|
|
|
|
|
cgo = true |
|
|
|
|
} |
|
|
|
|
if strings.HasPrefix(goarch, "armv") { |
|
|
|
|
os.Setenv("GOARCH", "arm") |
|
|
|
|
os.Setenv("GOARM", goarch[4:]) |
|
|
|
@ -460,15 +488,12 @@ func setBuildEnv() { |
|
|
|
|
if goarch == "386" { |
|
|
|
|
os.Setenv("GO386", "387") |
|
|
|
|
} |
|
|
|
|
if cgo != "" { |
|
|
|
|
os.Setenv("CGO_ENABLED", cgo) |
|
|
|
|
if cgo { |
|
|
|
|
os.Setenv("CGO_ENABLED", "1") |
|
|
|
|
} |
|
|
|
|
if gocc != "" { |
|
|
|
|
os.Setenv("CC", gocc) |
|
|
|
|
} |
|
|
|
|
if gocxx != "" { |
|
|
|
|
os.Setenv("CXX", gocxx) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func getGitSha() string { |
|
|
|
|