fix(ci): make Windows build-system CI green on v5.4

- Disable test_cli_installer_win (when: never), matching release/v5.5
- Download known-failure cases and pass --ignore-result-files on Windows build-system pytest
- Force Ninja response files on Windows hosts via CMAKE_NINJA_FORCE_RESPONSE_FILE in utilities.cmake (backport of 2e5d930e)

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Marek Fiala
2026-07-27 12:32:32 +02:00
parent bf630eac15
commit 6d48add711
2 changed files with 21 additions and 5 deletions

View File

@@ -18,9 +18,12 @@
after_script: []
test_cli_installer_win:
rules:
- when: never
extends:
- .host_test_win_template
- .rules:labels:windows_pytest_build_system
allow_failure: true
artifacts:
when: on_failure
paths:
@@ -78,7 +81,8 @@ test_tools_win:
- . .\export.ps1
- python "${SUBMODULE_FETCH_TOOL}" -s "all"
- cd ${IDF_PATH}\tools\test_build_system
- pytest --parallel-count ${CI_NODE_TOTAL} --parallel-index ${CI_NODE_INDEX} --junitxml=${CI_PROJECT_DIR}\XUNIT_RESULT.xml
- python ${IDF_PATH}\tools\ci\get_known_failure_cases_file.py
- pytest --parallel-count ${CI_NODE_TOTAL} --parallel-index ${CI_NODE_INDEX} --junitxml=${CI_PROJECT_DIR}\XUNIT_RESULT.xml --ignore-result-files ${KNOWN_FAILURE_CASES_FILE_NAME}
pytest_build_system_win:
extends:
@@ -131,4 +135,5 @@ pytest_build_system_win_minimal_cmake:
}
- python "${SUBMODULE_FETCH_TOOL}" -s "all"
- cd ${IDF_PATH}\tools\test_build_system
- pytest -k cmake --junitxml=${CI_PROJECT_DIR}\XUNIT_RESULT.xml
- python ${IDF_PATH}\tools\ci\get_known_failure_cases_file.py
- pytest -k cmake --junitxml=${CI_PROJECT_DIR}\XUNIT_RESULT.xml --ignore-result-files ${KNOWN_FAILURE_CASES_FILE_NAME}

View File

@@ -1,3 +1,14 @@
# Windows CreateProcess enforces a short command line (~32k). IDF compile lines can be
# huge (includes, reproducible-build prefix maps, etc.). Tell the Ninja generator to
# pass compiler arguments via response files (CMake 3.15+).
# Included from every chip toolchain-*.cmake so this applies on Windows Ninja builds.
# Backport of CMAKE_NINJA_FORCE_RESPONSE_FILE from master (2e5d930e / !46653).
if(CMAKE_HOST_WIN32 AND CMAKE_GENERATOR MATCHES "Ninja"
AND NOT DEFINED CACHE{CMAKE_NINJA_FORCE_RESPONSE_FILE})
set(CMAKE_NINJA_FORCE_RESPONSE_FILE ON CACHE BOOL
"Use Ninja response files on Windows hosts (avoid CreateProcess command-line limit).")
endif()
# set_default
#
# Define a variable to a default value if otherwise unset.
@@ -157,7 +168,7 @@ function(target_linker_script target deptype scriptfiles)
# https://cmake.org/cmake/help/latest/command/target_link_options.html#option-de-duplication
target_link_options("${target}" "${deptype}" "SHELL:-T ${scriptname}")
# Note: In ESP-IDF, most targets are libraries and libary LINK_DEPENDS don't propagate to
# Note: In ESP-IDF, most targets are libraries and library LINK_DEPENDS don't propagate to
# executable(s) the library is linked to. Since CMake 3.13, INTERFACE_LINK_DEPENDS is
# available to solve this. However, when GNU Make generator is used, this property also
# propagates INTERFACE_LINK_DEPENDS dependencies to other static libraries.
@@ -225,7 +236,7 @@ endfunction()
# fail_target
#
# Creates a phony target which fails when invoked. This is used when the necessary conditions
# for a target are not met, such as configuration. Rather than ommitting the target altogether,
# for a target are not met, such as configuration. Rather than omitting the target altogether,
# we fail execution with a helpful message.
function(fail_target target_name message_line0)
idf_build_get_property(idf_path IDF_PATH)
@@ -354,7 +365,7 @@ endfunction()
# add_deprecated_target_alias
#
# Creates an alias for exising target and shows deprectation warning
# Creates an alias for existing target and shows deprecation warning
function(add_deprecated_target_alias old_target new_target)
add_custom_target(${old_target}
# `COMMAND` is important to print the `COMMENT` message at the end of the target action.