func main() { flag.Parse() username, ok := os.LookupEnv(teamcityAPIUserEnv) if !ok { log.Fatalf("teamcity API username environment variable %s is not set", teamcityAPIUserEnv) } password, ok := os.LookupEnv(teamcityAPIPasswordEnv) if !ok { log.Fatalf("teamcity API password environment variable %s is not set", teamcityAPIPasswordEnv) } importPaths := gotool.ImportPaths([]string{"github.com/cockroachdb/cockroach/..."}) client := teamcity.New("teamcity.cockroachdb.com", username, password) // Queue a build per configuration per package. for _, params := range []map[string]string{ {}, // uninstrumented {"env.GOFLAGS": "-race"}, {"env.TAGS": "deadlock"}, } { for _, importPath := range importPaths { params["env.PKG"] = importPath build, err := client.QueueBuild(*buildTypeID, *branchName, params) if err != nil { log.Fatalf("failed to create teamcity build (*buildTypeID=%s *branchName=%s, params=%+v): %s", *buildTypeID, *branchName, params, err) } log.Printf("created teamcity build (*buildTypeID=%s *branchName=%s, params=%+v): %s", *buildTypeID, *branchName, params, build) } } }
func main() { flag.Parse() serverURL, ok := os.LookupEnv(teamcityServerURLEnv) if !ok { log.Fatalf("teamcity server URL environment variable %s is not set", teamcityServerURLEnv) } u, err := url.Parse(serverURL) if err != nil { log.Fatal(err) } username, ok := os.LookupEnv(teamcityAPIUserEnv) if !ok { log.Fatalf("teamcity API username environment variable %s is not set", teamcityAPIUserEnv) } password, ok := os.LookupEnv(teamcityAPIPasswordEnv) if !ok { log.Fatalf("teamcity API password environment variable %s is not set", teamcityAPIPasswordEnv) } client := teamcity.New(u.Host, username, password) runTC(func(properties map[string]string) { build, err := client.QueueBuild(*buildTypeID, *branchName, properties) if err != nil { log.Fatalf("failed to create teamcity build (*buildTypeID=%s *branchName=%s, properties=%+v): %s", *buildTypeID, *branchName, properties, err) } log.Printf("created teamcity build (*buildTypeID=%s *branchName=%s, properties=%+v): %s", *buildTypeID, *branchName, properties, build) }) }
func main() { flag.Parse() serverURL, ok := os.LookupEnv(teamcityServerURLEnv) if !ok { log.Fatalf("teamcity server URL environment variable %s is not set", teamcityServerURLEnv) } u, err := url.Parse(serverURL) if err != nil { log.Fatal(err) } username, ok := os.LookupEnv(teamcityAPIUserEnv) if !ok { log.Fatalf("teamcity API username environment variable %s is not set", teamcityAPIUserEnv) } password, ok := os.LookupEnv(teamcityAPIPasswordEnv) if !ok { log.Fatalf("teamcity API password environment variable %s is not set", teamcityAPIPasswordEnv) } importPaths := gotool.ImportPaths([]string{"github.com/cockroachdb/cockroach/pkg/..."}) client := teamcity.New(u.Host, username, password) // Queue a build per configuration per package. for _, params := range []map[string]string{ {}, // uninstrumented {"env.GOFLAGS": "-race"}, {tagsKey: "deadlock"}, } { if tags, ok := params[tagsKey]; ok { params[tagsKey] = strings.Join([]string{tags, stressTag}, " ") } else { params[tagsKey] = stressTag } for _, propEvalKV := range []bool{true, false} { params["env.COCKROACH_PROPOSER_EVALUATED_KV"] = strconv.FormatBool(propEvalKV) for _, importPath := range importPaths { params["env.PKG"] = importPath build, err := client.QueueBuild(*buildTypeID, *branchName, params) if err != nil { log.Fatalf("failed to create teamcity build (*buildTypeID=%s *branchName=%s, params=%+v): %s", *buildTypeID, *branchName, params, err) } log.Printf("created teamcity build (*buildTypeID=%s *branchName=%s, params=%+v): %s", *buildTypeID, *branchName, params, build) } } } }