ci(buildv2): skip patching the fake_pass build child pipeline

idf-ci emits a skip pipeline containing only a fake_pass job, with no
include of test_child_pipeline.yml, when the modified files match no
buildable apps. patch_buildv2_child_pipeline.py redefined
generate_pytest_child_pipeline unconditionally, assuming the included
template supplied its tags, image and assign_test stage via keyword
merge. With the template absent, the injected job was bare: no tags,
default test stage. It was scheduled on the wrong runner and failed,
turning the allow_failure build_child_pipeline_buildv2 bridge red on
every buildv2 MR whose changes produce an empty app matrix.

Return early when a fake_pass job is present so the child pipeline is
left untouched and skips, matching the default build path. Add a unit
test for the patch script and a host_test job to run it.
This commit is contained in:
Sudeep Mohanty
2026-07-28 10:47:57 +02:00
parent 8550997ada
commit e69d5bb697
4 changed files with 85 additions and 0 deletions

View File

@@ -295,6 +295,12 @@ test_idf_build_apps_load_soc_caps:
- cd tools/ci
- pytest_for_ut ./test_soc_headers_load_in_idf_build_apps.py
test_dynamic_pipelines_scripts:
extends: .host_test_template
script:
- cd ${IDF_PATH}/tools/ci/dynamic_pipelines/tests
- pytest_for_ut ./test_patch_buildv2_child_pipeline.py
test_nvs_gen_check:
extends: .host_test_template
artifacts:

View File

@@ -134,6 +134,9 @@
- "tools/ci/test_soc_headers_load_in_idf_build_apps.py"
- "tools/ci/dynamic_pipelines/scripts/patch_buildv2_child_pipeline.py"
- "tools/ci/dynamic_pipelines/tests/**/*"
.patterns-docker: &patterns-docker
- "tools/docker/**/*"