mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
74 lines
2.8 KiB
Python
74 lines
2.8 KiB
Python
|
# SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
|
||
|
# SPDX-License-Identifier: Apache-2.0
|
||
|
|
||
|
import argparse
|
||
|
import sys
|
||
|
|
||
|
import __init__ # noqa: F401 # inject the system path
|
||
|
from dynamic_pipelines.constants import TEST_RELATED_APPS_FILENAME
|
||
|
from idf_build_apps import build_apps, setup_logging
|
||
|
from idf_build_apps.utils import semicolon_separated_str_to_list
|
||
|
from idf_ci.app import import_apps_from_txt
|
||
|
from idf_pytest.constants import DEFAULT_IGNORE_WARNING_FILEPATH
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
parser = argparse.ArgumentParser(description='Build Apps for Dynamic Pipeline')
|
||
|
parser.add_argument('app_list_file', default=TEST_RELATED_APPS_FILENAME, help='List of apps to build')
|
||
|
parser.add_argument(
|
||
|
'--build-verbose',
|
||
|
action='store_true',
|
||
|
help='Enable verbose output from build system.',
|
||
|
)
|
||
|
parser.add_argument('--parallel-count', default=1, type=int, help='Number of parallel build jobs.')
|
||
|
parser.add_argument(
|
||
|
'--parallel-index',
|
||
|
default=1,
|
||
|
type=int,
|
||
|
help='Index (1-based) of the job, out of the number specified by --parallel-count.',
|
||
|
)
|
||
|
parser.add_argument(
|
||
|
'--ignore-warning-file',
|
||
|
default=DEFAULT_IGNORE_WARNING_FILEPATH,
|
||
|
type=argparse.FileType('r'),
|
||
|
help='Ignore the warning strings in the specified file. Each line should be a regex string.',
|
||
|
)
|
||
|
parser.add_argument(
|
||
|
'--modified-components',
|
||
|
type=semicolon_separated_str_to_list,
|
||
|
help='semicolon-separated string which specifies the modified components. '
|
||
|
'app with `depends_components` set in the corresponding manifest files would only be built '
|
||
|
'if depends on any of the specified components. '
|
||
|
'If set to "", the value would be considered as None. '
|
||
|
'If set to ";", the value would be considered as an empty list',
|
||
|
)
|
||
|
parser.add_argument(
|
||
|
'--collect-app-info',
|
||
|
default='list_job_@p.txt',
|
||
|
help='If specified, the test case name and app info json will be written to this file',
|
||
|
)
|
||
|
parser.add_argument(
|
||
|
'--junitxml',
|
||
|
default='build_summary_@p.xml',
|
||
|
help='Path to the junitxml file. If specified, the junitxml file will be generated',
|
||
|
)
|
||
|
|
||
|
args = parser.parse_args()
|
||
|
|
||
|
setup_logging(verbose=1)
|
||
|
|
||
|
sys.exit(
|
||
|
build_apps(
|
||
|
import_apps_from_txt(args.app_list_file),
|
||
|
build_verbose=args.build_verbose,
|
||
|
keep_going=True,
|
||
|
ignore_warning_file=args.ignore_warning_file,
|
||
|
modified_components=args.modified_components,
|
||
|
check_app_dependencies=True,
|
||
|
parallel_count=args.parallel_count,
|
||
|
parallel_index=args.parallel_index,
|
||
|
collect_size_info='size_info_@p.txt',
|
||
|
collect_app_info=args.collect_app_info,
|
||
|
junitxml=args.junitxml,
|
||
|
)
|
||
|
)
|