#!/usr/bin/env python3 # # Copyright (c) 2024 Raspberry Pi (Trading) Ltd. # # SPDX-License-Identifier: BSD-3-Clause # # Runs all Bazel checks. import sys from bazel_build import build_all_configurations from bazel_common import setup_logging, print_framed_string, parse_common_args from compare_build_systems import compare_build_systems from check_source_files_in_bazel_build import check_sources_in_bazel_build def main(): setup_logging() failed_steps = [] args = parse_common_args() steps = ( { "description": "Bazel build", "action": lambda : build_all_configurations(args.picotool_dir), }, { "description": "Ensure build system configurations options match", "action": compare_build_systems, }, { "description": "Ensure source files are present in Bazel build", "action": lambda : check_sources_in_bazel_build(args.picotool_dir), }, ) for step in steps: print_framed_string(f"{step['description']}...") returncode = step["action"]() if returncode != 0: failed_steps.append(step["description"]) print() if failed_steps: print_framed_string("ERROR: One or more steps failed.") for build in failed_steps: print(f" * FAILED: {build}") return 1 print_framed_string("All checks successfully passed!") if __name__ == "__main__": sys.exit(main())