Merge branch 'ci/support_full_pipeline_by_components' into 'master'

CI: Support full pipeline by components

See merge request espressif/esp-idf!29760
This commit is contained in:
Fu Hanxi 2024-03-20 17:53:32 +08:00
commit b47c9e9c21
2 changed files with 34 additions and 16 deletions

View File

@ -22,6 +22,7 @@ from idf_ci.app import dump_apps_to_txt
from idf_ci_utils import IDF_PATH from idf_ci_utils import IDF_PATH
from idf_pytest.constants import CollectMode from idf_pytest.constants import CollectMode
from idf_pytest.constants import DEFAULT_CONFIG_RULES_STR from idf_pytest.constants import DEFAULT_CONFIG_RULES_STR
from idf_pytest.constants import DEFAULT_FULL_BUILD_TEST_COMPONENTS
from idf_pytest.constants import DEFAULT_FULL_BUILD_TEST_FILEPATTERNS from idf_pytest.constants import DEFAULT_FULL_BUILD_TEST_FILEPATTERNS
from idf_pytest.script import get_all_apps from idf_pytest.script import get_all_apps
@ -184,6 +185,18 @@ if __name__ == '__main__':
'If set to "", the value would be considered as None. ' 'If set to "", the value would be considered as None. '
'If set to ";", the value would be considered as an empty list', 'If set to ";", the value would be considered as an empty list',
) )
parser.add_argument(
'-ic',
'--ignore-app-dependencies-components',
type=_separate_str_to_list,
help='semicolon-separated string which specifies the modified components used for '
'ignoring checking the app dependencies. '
'The `depends_components` and `depends_filepatterns` set in the manifest files will be ignored '
'when any of the specified components matches any of the modified components. '
'Must be used together with --modified-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( parser.add_argument(
'-if', '-if',
'--ignore-app-dependencies-filepatterns', '--ignore-app-dependencies-filepatterns',
@ -216,7 +229,11 @@ if __name__ == '__main__':
f'- modified files: {args.modified_files}' f'- modified files: {args.modified_files}'
) )
if args.modified_files and not args.ignore_app_dependencies_filepatterns: if args.modified_components is not None and not args.ignore_app_dependencies_components:
# setting default values
args.ignore_app_dependencies_components = DEFAULT_FULL_BUILD_TEST_COMPONENTS
if args.modified_files is not None and not args.ignore_app_dependencies_filepatterns:
# setting default values # setting default values
args.ignore_app_dependencies_filepatterns = DEFAULT_FULL_BUILD_TEST_FILEPATTERNS args.ignore_app_dependencies_filepatterns = DEFAULT_FULL_BUILD_TEST_FILEPATTERNS

View File

@ -122,27 +122,28 @@ ENV_MARKERS = {
DEFAULT_CONFIG_RULES_STR = ['sdkconfig.ci=default', 'sdkconfig.ci.*=', '=default'] DEFAULT_CONFIG_RULES_STR = ['sdkconfig.ci=default', 'sdkconfig.ci.*=', '=default']
DEFAULT_IGNORE_WARNING_FILEPATH = os.path.join(IDF_PATH, 'tools', 'ci', 'ignore_build_warnings.txt') DEFAULT_IGNORE_WARNING_FILEPATH = os.path.join(IDF_PATH, 'tools', 'ci', 'ignore_build_warnings.txt')
DEFAULT_BUILD_TEST_RULES_FILEPATH = os.path.join(IDF_PATH, '.gitlab', 'ci', 'default-build-test-rules.yml') DEFAULT_BUILD_TEST_RULES_FILEPATH = os.path.join(IDF_PATH, '.gitlab', 'ci', 'default-build-test-rules.yml')
DEFAULT_FULL_BUILD_TEST_COMPONENTS = [
'cxx',
'esp_common',
'esp_hw_support',
'esp_rom',
'esp_system',
'esp_timer',
'freertos',
'hal',
'heap',
'log',
'newlib',
'riscv',
'soc',
'xtensa',
]
DEFAULT_FULL_BUILD_TEST_FILEPATTERNS = [ DEFAULT_FULL_BUILD_TEST_FILEPATTERNS = [
# tools # tools
'tools/cmake/**/*', 'tools/cmake/**/*',
'tools/tools.json', 'tools/tools.json',
# ci # ci
'tools/ci/ignore_build_warnings.txt', 'tools/ci/ignore_build_warnings.txt',
# components
'components/cxx/**/*',
'components/esp_common/**/*',
'components/esp_hw_support/**/*',
'components/esp_rom/**/*',
'components/esp_system/**/*',
'components/esp_timer/**/*',
'components/freertos/**/*',
'components/hal/**/*',
'components/heap/**/*',
'components/log/**/*',
'components/newlib/**/*',
'components/riscv/**/*',
'components/soc/**/*',
'components/xtensa/**/*',
] ]
DEFAULT_BUILD_LOG_FILENAME = 'build_log.txt' DEFAULT_BUILD_LOG_FILENAME = 'build_log.txt'