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.
Keep legacy ULP apps on the CMake v1 build path while buildv2 coverage
is limited to full_subproject ULP apps.
Also add the missing esp_driver_gpio dependency to the esp_pm test app
so buildv2 dependency checks see driver/rtc_io.h explicitly.
Add the parallel set of CI jobs that exercise the cmakev2 path end-to-end
via the IDF_BUILD_V2 shim. All jobs are gated on the `buildv2` MR label
with `allow_failure: true` so unrelated MRs do not pay for the extra
build matrix.
- `.gitlab/ci/build.yml`: add the buildv2 child build pipeline that
re-runs the full app build matrix with IDF_BUILD_V2=y, plus the
Windows buildv2 build job. The generator script injects IDF_BUILD_V2
and a PIPELINE_COMMIT_SHA suffix into each child job and broadens
target_test job filters so v1 and buildv2 artifacts upload to distinct
s3 cache paths and each child pipeline tests its own binary.
- `.gitlab/ci/host-test.yml`: add the QEMU (esp32, esp32c3) and Linux
pytest buildv2 jobs.
- `.idf_build_apps.toml`: parameterize build_dir with BUILDV2_DIR_SUFFIX
(set to _v2 only on the buildv2 pipeline).
Remove the temporary esp32s31 disable from usb/host build-test rules.
Add esp32s31 and esp32h4 to the usb_host_msc and usb_host_lib pytest
matrices. Keep the tests temp-skipped in CI until usb_host_flash_disk
runners exist.