mirror of
https://github.com/espressif/esp-idf.git
synced 2026-04-27 19:13:21 +00:00
f72292b0d7
The test_rebuild_no_changes test verifies that running idf.py build successively without any file changes results in identical build artifacts on the second run (i.e., nothing gets rebuilt). This test was failing in buildv2 because it expected kconfig_menus.json to be present in build/config/ after a normal build. However, in cmakev2, kconfig_menus.json is not generated during regular builds. In cmakev1, kconfig_menus.json was generated globally during every build alongside other config files (sdkconfig.h, sdkconfig.cmake, etc). In cmakev2, kconfig_menus.json generation does not happend for normal builds because it depends on the Kconfig menu hierarchy and cannot be generated globally. It must be generated per-executable. Hence, this commit updates the artefacts list for cmakev2 to not expect the kconfig_menus.json file during a build/re-build action.
183 lines
5.8 KiB
YAML
183 lines
5.8 KiB
YAML
# Host tests
|
|
.host_test_win_template:
|
|
extends: .rules:test:host_test
|
|
stage: host_test
|
|
image: $ESP_ENV_IMAGE
|
|
tags: [windows-build, brew]
|
|
dependencies: # set dependencies to null to avoid missing artifacts issue
|
|
# run host_test jobs immediately, only after upload cache
|
|
needs:
|
|
- job: upload-pip-cache
|
|
optional: true
|
|
artifacts: false
|
|
- job: upload-submodules-cache
|
|
optional: true
|
|
artifacts: false
|
|
variables:
|
|
GIT_STRATEGY: fetch # use brew local mirror first
|
|
before_script:
|
|
- if ($env:IDF_DONT_USE_MIRRORS) {
|
|
$env:IDF_MIRROR_PREFIX_MAP = ""
|
|
}
|
|
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:
|
|
- tools/tools.new.json
|
|
- tools/test_idf_tools/test_python_env_logs.txt
|
|
expire_in: 1 week
|
|
variables:
|
|
IDF_PATH: "$CI_PROJECT_DIR"
|
|
timeout: 3h
|
|
script:
|
|
# Tools must be downloaded for testing
|
|
# cmake@version that is supported
|
|
- python ${IDF_PATH}\tools\idf_tools.py download required qemu-riscv32 qemu-xtensa cmake cmake@3.22.1
|
|
- cd ${IDF_PATH}\tools\test_idf_tools
|
|
- python -m pip install jsonschema
|
|
- python .\test_idf_tools.py
|
|
- python .\test_idf_tools_python_env.py
|
|
|
|
test_tools_win:
|
|
extends:
|
|
- .host_test_win_template
|
|
- .rules:labels:windows_pytest_build_system
|
|
parallel: 4
|
|
artifacts:
|
|
paths:
|
|
- ${IDF_PATH}/*.out
|
|
- ${IDF_PATH}/XUNIT_*.xml
|
|
reports:
|
|
junit: ${IDF_PATH}/XUNIT_*.xml
|
|
expire_in: 1 week
|
|
when: always
|
|
variables:
|
|
LC_ALL: C.UTF-8
|
|
PYTHONPATH: "$PYTHONPATH;$IDF_PATH\\tools;$IDF_PATH\\tools\\esp_app_trace;$IDF_PATH\\components\\partition_table;$IDF_PATH\\tools\\ci\\python_packages"
|
|
script:
|
|
- python -m pip install jsonschema
|
|
- .\install.ps1 --enable-ci
|
|
- .\export.ps1
|
|
- python "${SUBMODULE_FETCH_TOOL}" -s "all"
|
|
- cd ${IDF_PATH}/tools/test_idf_py
|
|
- idf-ci gitlab download-known-failure-cases-file ${KNOWN_FAILURE_CASES_FILE_NAME}
|
|
- pytest --parallel-count ${CI_NODE_TOTAL} --parallel-index ${CI_NODE_INDEX} --junitxml=${IDF_PATH}/XUNIT_RESULT.xml --ignore-result-files ${KNOWN_FAILURE_CASES_FILE_NAME}
|
|
|
|
# Build tests
|
|
.test_build_system_template_win:
|
|
stage: host_test
|
|
variables:
|
|
# Enable ccache for all build jobs. See configure_ci_environment.sh for more ccache related settings.
|
|
IDF_CCACHE_ENABLE: "1"
|
|
PYTHONPATH: "$PYTHONPATH;$IDF_PATH\\tools;$IDF_PATH\\tools\\esp_app_trace;$IDF_PATH\\components\\partition_table;$IDF_PATH\\tools\\ci\\python_packages"
|
|
before_script: []
|
|
after_script: []
|
|
timeout: 4 hours
|
|
script:
|
|
- .\install.ps1 --enable-ci
|
|
- . .\export.ps1
|
|
- python "${SUBMODULE_FETCH_TOOL}" -s "all"
|
|
- cd ${IDF_PATH}\tools\test_build_system
|
|
- idf-ci gitlab download-known-failure-cases-file ${KNOWN_FAILURE_CASES_FILE_NAME}
|
|
- 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:
|
|
- .test_build_system_template_win
|
|
- .rules:labels:windows_pytest_build_system
|
|
parallel: 6
|
|
needs: []
|
|
tags: [windows-build, brew]
|
|
artifacts:
|
|
paths:
|
|
- XUNIT_RESULT.xml
|
|
- test_build_system
|
|
expire_in: 2 days
|
|
reports:
|
|
junit: XUNIT_RESULT.xml
|
|
when: always
|
|
|
|
pytest_build_system_win_minimal_cmake:
|
|
extends:
|
|
- .test_build_system_template_win
|
|
- .rules:labels:windows_pytest_build_system
|
|
needs: []
|
|
tags: [windows-build, brew]
|
|
artifacts:
|
|
paths:
|
|
- XUNIT_RESULT.xml
|
|
- test_build_system
|
|
expire_in: 2 days
|
|
reports:
|
|
junit: XUNIT_RESULT.xml
|
|
when: always
|
|
variables:
|
|
MINIMAL_CMAKE_VERSION: "3.22.1"
|
|
script:
|
|
- .\install.ps1 --enable-ci
|
|
- . .\export.ps1
|
|
- python ${IDF_PATH}\tools\idf_tools.py install cmake@${MINIMAL_CMAKE_VERSION}
|
|
- $Env:PATH = "$Env:USERPROFILE\.espressif\tools\cmake\${MINIMAL_CMAKE_VERSION}\bin;$Env:PATH"
|
|
- |
|
|
$actualVersion = (& cmake --version).Split()[2]
|
|
if ($actualVersion -ne $Env:MINIMAL_CMAKE_VERSION) {
|
|
Write-Error "ERROR: Wrong CMake version! Detected: $actualVersion, but expected: $Env:MINIMAL_CMAKE_VERSION"
|
|
exit 1
|
|
}
|
|
- python "${SUBMODULE_FETCH_TOOL}" -s "all"
|
|
- cd ${IDF_PATH}\tools\test_build_system
|
|
- idf-ci gitlab download-known-failure-cases-file ${KNOWN_FAILURE_CASES_FILE_NAME}
|
|
- pytest -k cmake --junitxml=${CI_PROJECT_DIR}\XUNIT_RESULT.xml --ignore-result-files ${KNOWN_FAILURE_CASES_FILE_NAME}
|
|
|
|
pytest_buildv2_system_win:
|
|
extends:
|
|
- .test_build_system_template_win
|
|
- .rules:labels:buildv2
|
|
parallel: 2
|
|
needs: []
|
|
tags: [windows-build, brew]
|
|
artifacts:
|
|
paths:
|
|
- XUNIT_RESULT.xml
|
|
- test_build_system
|
|
expire_in: 2 days
|
|
reports:
|
|
junit: XUNIT_RESULT.xml
|
|
when: always
|
|
script:
|
|
- .\install.ps1 --enable-ci
|
|
- . .\export.ps1
|
|
- python "${SUBMODULE_FETCH_TOOL}" -s "all"
|
|
- cd ${IDF_PATH}\tools\test_build_system
|
|
- idf-ci gitlab download-known-failure-cases-file ${KNOWN_FAILURE_CASES_FILE_NAME}
|
|
- pytest
|
|
--buildv2
|
|
--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}
|
|
--
|
|
test_non_default_target.py
|
|
test_component_manager.py
|
|
test_build.py
|
|
test_bootloader.py
|
|
test_git.py
|
|
test_kconfig.py
|
|
test_partition.py
|
|
test_reproducible_build.py
|
|
test_sdkconfig.py
|
|
test_versions.py
|
|
test_common.py
|
|
test_components.py
|
|
test_cmake.py
|
|
test_idf_extension.py
|
|
test_rebuild.py
|