def main(argv=None): if argv is None: argv = sys.argv[1:] parser = argparse.ArgumentParser( description= "Script to aggregate `bazelisk --migrate` test result for incompatible flags and generate pretty Buildkite info messages." ) parser.add_argument("--build_number", type=str) args = parser.parse_args(argv) try: if args.build_number: client = bazelci.BuildkiteClient(org=BUILDKITE_ORG, pipeline=PIPELINE) migration_required = print_result_info(args.build_number, client) if migration_required and FAIL_IF_MIGRATION_REQUIRED: bazelci.eprint( "Exiting with code 3 since a migration is required.") return 3 else: parser.print_help() return 2 except bazelci.BuildkiteException as e: bazelci.eprint(str(e)) return 1 return 0
def __init__(self, project, pipeline, downstream_result): super().__init__() self.project = project self.pipeline = pipeline self.downstream_result = downstream_result self.main_result = None self.client = bazelci.BuildkiteClient(BUILDKITE_ORG, pipeline) self.analyze_log = [ f"{COLORS['HEADER']}Analyzing {self.project}: {COLORS['ENDC']}" ] self.broken_by_infra = False
def main(argv=None): if argv is None: argv = sys.argv[1:] parser = argparse.ArgumentParser( description= "Script to aggregate `bazelisk --migrate` test result for incompatible flags and generate pretty Buildkite info messages." ) parser.add_argument("--build_number", type=str) parser.add_argument("--notify", type=bool, nargs="?", const=True) args = parser.parse_args(argv) try: if args.build_number: client = bazelci.BuildkiteClient(org=BUILDKITE_ORG, pipeline=PIPELINE) already_failing_jobs, failed_jobs_per_flag, details_per_flag = analyze_logs( args.build_number, client) failed_jobs_per_flag, details_per_flag = handle_already_flipped_flags( failed_jobs_per_flag, details_per_flag) migration_required = print_result_info(already_failing_jobs, failed_jobs_per_flag, details_per_flag) if args.notify: notify_projects(failed_jobs_per_flag, details_per_flag) if migration_required and FAIL_IF_MIGRATION_REQUIRED: bazelci.eprint( "Exiting with code 3 since a migration is required.") return 3 else: parser.print_help() return 2 except bazelci.BuildkiteException as e: bazelci.eprint(str(e)) return 1 return 0
def main(argv=None): if argv is None: argv = sys.argv[1:] parser = argparse.ArgumentParser( description= "Script for testing failing jobs with individual incompatible flag") parser.add_argument("--build_number", type=str) args = parser.parse_args(argv) try: if args.build_number: client = bazelci.BuildkiteClient(org=BUILDKITE_ORG, pipeline=PIPELINE) build_info = client.get_build_info(args.build_number) print_steps_for_failing_jobs(build_info) else: parser.print_help() return 2 except BuildkiteException as e: bazelci.eprint(str(e)) return 1 return 0
BUILDKITE_ORG = "bazel" DOWNSTREAM_PIPELINE = "bazel-at-head-plus-downstream" CULPRIT_FINDER_PIPELINE = "culprit-finder" COLORS = { "SERIOUS": '\033[95m', "HEADER": '\033[34m', "PASSED": '\033[92m', "WARNING": '\033[93m', "FAIL": '\033[91m', "ENDC": '\033[0m', "INFO": '\033[0m', "BOLD": '\033[1m', } DOWNSTREAM_PIPELINE_CLIENT = bazelci.BuildkiteClient(BUILDKITE_ORG, DOWNSTREAM_PIPELINE) CULPRIT_FINDER_PIPELINE_CLIENT = bazelci.BuildkiteClient( BUILDKITE_ORG, CULPRIT_FINDER_PIPELINE) def print_info(context, style, info, append=True): info_str = "\n".join(info) bazelci.execute_command( args=[ "buildkite-agent", "annotate", ] + (["--append"] if append else []) + [ f"--context={context}", f"--style={style}", f"\n{info_str}\n", ],