pico-sdk/tools/run_all_bazel_checks.py
2024-08-08 08:54:38 -05:00

56 lines
1.5 KiB
Python
Executable File

#!/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())