build: introduce -dev flag optimal for building in development mode

Fix performance issue with running bra run for go run build.go build
This commit is contained in:
Marcus Efraimsson 2018-04-18 11:24:29 +02:00
parent 54b7846eb6
commit b7b0ca2b90
No known key found for this signature in database
GPG Key ID: EBFE0FB04612DD4A
2 changed files with 23 additions and 10 deletions

View File

@ -1,6 +1,6 @@
[run] [run]
init_cmds = [ init_cmds = [
["go", "run", "build.go", "build-server"], ["go", "run", "build.go", "-dev", "build-server"],
["./bin/grafana-server", "cfg:app_mode=development"] ["./bin/grafana-server", "cfg:app_mode=development"]
] ]
watch_all = true watch_all = true
@ -12,6 +12,6 @@ watch_dirs = [
watch_exts = [".go", ".ini", ".toml"] watch_exts = [".go", ".ini", ".toml"]
build_delay = 1500 build_delay = 1500
cmds = [ cmds = [
["go", "run", "build.go", "build"], ["go", "run", "build.go", "-dev", "build"],
["./bin/grafana-server", "cfg:app_mode=development"] ["./bin/grafana-server", "cfg:app_mode=development"]
] ]

View File

@ -41,6 +41,7 @@ var (
includeBuildNumber bool = true includeBuildNumber bool = true
buildNumber int = 0 buildNumber int = 0
binaries []string = []string{"grafana-server", "grafana-cli"} binaries []string = []string{"grafana-server", "grafana-cli"}
isDev bool = false
) )
const minGoVersion = 1.8 const minGoVersion = 1.8
@ -61,6 +62,7 @@ func main() {
flag.BoolVar(&race, "race", race, "Use race detector") flag.BoolVar(&race, "race", race, "Use race detector")
flag.BoolVar(&includeBuildNumber, "includeBuildNumber", includeBuildNumber, "IncludeBuildNumber in package name") flag.BoolVar(&includeBuildNumber, "includeBuildNumber", includeBuildNumber, "IncludeBuildNumber in package name")
flag.IntVar(&buildNumber, "buildNumber", 0, "Build number from CI system") flag.IntVar(&buildNumber, "buildNumber", 0, "Build number from CI system")
flag.BoolVar(&isDev, "dev", isDev, "optimal for development, skips certain steps")
flag.Parse() flag.Parse()
readVersionFromPackageJson() readVersionFromPackageJson()
@ -394,7 +396,9 @@ func build(binaryName, pkg string, tags []string) {
binary += ".exe" binary += ".exe"
} }
if !isDev {
rmr(binary, binary+".md5") rmr(binary, binary+".md5")
}
args := []string{"build", "-ldflags", ldflags()} args := []string{"build", "-ldflags", ldflags()}
if len(tags) > 0 { if len(tags) > 0 {
args = append(args, "-tags", strings.Join(tags, ",")) args = append(args, "-tags", strings.Join(tags, ","))
@ -405,17 +409,22 @@ func build(binaryName, pkg string, tags []string) {
args = append(args, "-o", binary) args = append(args, "-o", binary)
args = append(args, pkg) args = append(args, pkg)
setBuildEnv()
if !isDev {
setBuildEnv()
runPrint("go", "version") runPrint("go", "version")
}
runPrint("go", args...) runPrint("go", args...)
if !isDev {
// Create an md5 checksum of the binary, to be included in the archive for // Create an md5 checksum of the binary, to be included in the archive for
// automatic upgrades. // automatic upgrades.
err := md5File(binary) err := md5File(binary)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
}
} }
func ldflags() string { func ldflags() string {
@ -435,6 +444,10 @@ func rmr(paths ...string) {
} }
func clean() { func clean() {
if isDev {
return
}
rmr("dist") rmr("dist")
rmr("tmp") rmr("tmp")
rmr(filepath.Join(os.Getenv("GOPATH"), fmt.Sprintf("pkg/%s_%s/github.com/grafana", goos, goarch))) rmr(filepath.Join(os.Getenv("GOPATH"), fmt.Sprintf("pkg/%s_%s/github.com/grafana", goos, goarch)))