// Runs the actual build // Which phases get run are controlled by shouldBuild and shouldTest. func runBuild(targets []core.BuildLabel, shouldBuild, shouldTest, defaultToAllTargets bool) (bool, *core.BuildState) { if len(targets) == 0 { if defaultToAllTargets { targets = core.WholeGraph } else { targets = core.InitialPackage() } } pretty := prettyOutput(opts.OutputFlags.InteractiveOutput, opts.OutputFlags.PlainOutput, opts.OutputFlags.Verbosity) return Please(targets, config, pretty, shouldBuild, shouldTest) }
// testTargets handles test targets which can be given in two formats; a list of targets or a single // target with a list of trailing arguments. // Alternatively they can be completely omitted in which case we test everything under the working dir. func testTargets(target core.BuildLabel, args []string) []core.BuildLabel { if target.Name == "" { return core.InitialPackage() } else if len(args) > 0 && core.LooksLikeABuildLabel(args[0]) { opts.Cover.Args.Args = []string{} opts.Test.Args.Args = []string{} return append(core.ParseBuildLabels(args), target) } else { return []core.BuildLabel{target} } }