|
@@ -27,8 +27,7 @@ var (
|
|
|
goarch string
|
|
goarch string
|
|
|
goos string
|
|
goos string
|
|
|
gocc string
|
|
gocc string
|
|
|
- gocxx string
|
|
|
|
|
- cgo string
|
|
|
|
|
|
|
+ cgo bool
|
|
|
pkgArch 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
|
|
@@ -53,8 +52,7 @@ 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(&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(&pkgArch, "pkg-arch", "", "PKG ARCH")
|
|
|
flag.StringVar(&phjsToRelease, "phjs", "", "PhantomJS binary")
|
|
flag.StringVar(&phjsToRelease, "phjs", "", "PhantomJS binary")
|
|
|
flag.BoolVar(&race, "race", race, "Use race detector")
|
|
flag.BoolVar(&race, "race", race, "Use race detector")
|
|
@@ -93,20 +91,24 @@ func main() {
|
|
|
build("grafana-server", "./pkg/cmd/grafana-server", []string{})
|
|
build("grafana-server", "./pkg/cmd/grafana-server", []string{})
|
|
|
|
|
|
|
|
case "build":
|
|
case "build":
|
|
|
- clean()
|
|
|
|
|
|
|
+ //clean()
|
|
|
for _, binary := range binaries {
|
|
for _, binary := range binaries {
|
|
|
build(binary, "./pkg/cmd/"+binary, []string{})
|
|
build(binary, "./pkg/cmd/"+binary, []string{})
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ case "build-frontend":
|
|
|
|
|
+ grunt(gruntBuildArg("build")...)
|
|
|
|
|
+
|
|
|
case "test":
|
|
case "test":
|
|
|
test("./pkg/...")
|
|
test("./pkg/...")
|
|
|
grunt("test")
|
|
grunt("test")
|
|
|
|
|
|
|
|
case "package":
|
|
case "package":
|
|
|
- grunt(gruntBuildArg("release")...)
|
|
|
|
|
- if runtime.GOOS != "windows" {
|
|
|
|
|
- createLinuxPackages()
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ grunt(gruntBuildArg("build")...)
|
|
|
|
|
+ packageGrafana()
|
|
|
|
|
+
|
|
|
|
|
+ case "package-only":
|
|
|
|
|
+ packageGrafana()
|
|
|
|
|
|
|
|
case "pkg-rpm":
|
|
case "pkg-rpm":
|
|
|
grunt(gruntBuildArg("release")...)
|
|
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() {
|
|
func makeLatestDistCopies() {
|
|
|
files, err := ioutil.ReadDir("dist")
|
|
files, err := ioutil.ReadDir("dist")
|
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -138,9 +156,9 @@ func makeLatestDistCopies() {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
latestMapping := map[string]string{
|
|
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 {
|
|
for _, file := range files {
|
|
@@ -386,7 +404,8 @@ func test(pkg string) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func build(binaryName, pkg string, tags []string) {
|
|
func build(binaryName, pkg string, tags []string) {
|
|
|
- binary := "./bin/" + binaryName
|
|
|
|
|
|
|
+ binary := fmt.Sprintf("./bin/%s-%s/%s", goos, goarch, binaryName)
|
|
|
|
|
+
|
|
|
if goos == "windows" {
|
|
if goos == "windows" {
|
|
|
binary += ".exe"
|
|
binary += ".exe"
|
|
|
}
|
|
}
|
|
@@ -408,6 +427,7 @@ func build(binaryName, pkg string, tags []string) {
|
|
|
if !isDev {
|
|
if !isDev {
|
|
|
setBuildEnv()
|
|
setBuildEnv()
|
|
|
runPrint("go", "version")
|
|
runPrint("go", "version")
|
|
|
|
|
+ fmt.Printf("Targeting %s/%s\n", goos, goarch)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
runPrint("go", args...)
|
|
runPrint("go", args...)
|
|
@@ -451,6 +471,14 @@ func clean() {
|
|
|
|
|
|
|
|
func setBuildEnv() {
|
|
func setBuildEnv() {
|
|
|
os.Setenv("GOOS", goos)
|
|
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") {
|
|
if strings.HasPrefix(goarch, "armv") {
|
|
|
os.Setenv("GOARCH", "arm")
|
|
os.Setenv("GOARCH", "arm")
|
|
|
os.Setenv("GOARM", goarch[4:])
|
|
os.Setenv("GOARM", goarch[4:])
|
|
@@ -460,15 +488,12 @@ func setBuildEnv() {
|
|
|
if goarch == "386" {
|
|
if goarch == "386" {
|
|
|
os.Setenv("GO386", "387")
|
|
os.Setenv("GO386", "387")
|
|
|
}
|
|
}
|
|
|
- if cgo != "" {
|
|
|
|
|
- os.Setenv("CGO_ENABLED", cgo)
|
|
|
|
|
|
|
+ if cgo {
|
|
|
|
|
+ os.Setenv("CGO_ENABLED", "1")
|
|
|
}
|
|
}
|
|
|
if gocc != "" {
|
|
if gocc != "" {
|
|
|
os.Setenv("CC", gocc)
|
|
os.Setenv("CC", gocc)
|
|
|
}
|
|
}
|
|
|
- if gocxx != "" {
|
|
|
|
|
- os.Setenv("CXX", gocxx)
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func getGitSha() string {
|
|
func getGitSha() string {
|