| // Copyright 2017 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| package main |
| |
| /* |
| Generate the tasks.json file. |
| */ |
| |
| import ( |
| "context" |
| "flag" |
| "fmt" |
| "io/ioutil" |
| "os" |
| "path" |
| |
| "github.com/golang/glog" |
| |
| "go.skia.org/infra/go/common" |
| "go.skia.org/infra/go/exec" |
| "go.skia.org/infra/go/util" |
| "go.skia.org/infra/task_scheduler/go/specs" |
| ) |
| |
| func main() { |
| common.Init() |
| |
| root, err := specs.GetCheckoutRoot() |
| if err != nil { |
| glog.Fatal(err) |
| } |
| |
| skiaDir := path.Join(root, "..", "skia") |
| if _, err := os.Stat(skiaDir); err != nil { |
| glog.Fatalf("Unable to find Skia checkout in %s; you probably need to run 'gclient sync'.") |
| } |
| |
| infraBots := path.Join(root, "infra", "bots") |
| |
| // Copy aux file into same dir as gen_tasks.go. |
| auxPath := path.Join(skiaDir, "infra", "bots", "gen_tasks_aux.go") |
| if aux, err := ioutil.ReadFile(path.Join(infraBots, "gen_tasks_aux.go")); err != nil { |
| glog.Fatalf("Unable to read gen_tasks_aux.go in %s: %s", infraBots, err) |
| } else { |
| if err := ioutil.WriteFile(auxPath, aux, os.ModePerm); err != nil { |
| glog.Fatalf("Unable to write gen_tasks_aux.go to %s: %s", path.Join(skiaDir, "infra", "bots"), err) |
| } |
| } |
| defer util.RemoveAll(auxPath) |
| |
| args := []string{ |
| "go", "run", path.Join(skiaDir, "infra", "bots", "gen_tasks.go"), auxPath, |
| fmt.Sprintf("--builder_name_schema=%s", path.Join(skiaDir, "infra", "bots", "recipe_modules", "builder_name_schema", "builder_name_schema.json")), |
| fmt.Sprintf("--assets_dir=%s", path.Join(skiaDir, "infra", "bots", "assets")), |
| fmt.Sprintf("--cfg_file=%s", path.Join(infraBots, "cfg.json")), |
| fmt.Sprintf("--jobs=%s", path.Join(infraBots, "jobs.json")), |
| "--logtostderr", |
| } |
| |
| test := flag.Lookup("test") |
| if test != nil && test.Value.String() == "true" { |
| args = append(args, "--test") |
| } |
| if _, err := exec.RunCwd(context.Background(), root, args...); err != nil { |
| glog.Fatalf("Failed to run gen_tasks.go in skia.git: %s", err) |
| } |
| } |