191 Commits

Author SHA1 Message Date
Fu Hanxi 036bb8ec77 ci: move linux test cli args alongside the test scripts 2026-03-27 09:19:21 +01:00
Fu Hanxi ddc7e0cdf7 ci: move qemu test cli args alongside test scripts
remove redundant host_test marker
2026-03-26 10:56:15 +01:00
igor.udot f6e7ab370a ci: manual job to block pipeline start 2026-03-13 16:58:00 +08:00
Ivan Grokhotkov cb4b3da877 Merge branch 'feature/add-api-compatibility-ci-job' into 'master'
ci: add API compatibility check job for merge requests

Closes IDF-8483

See merge request espressif/esp-idf!45963
2026-03-09 09:12:50 +01:00
Ivan Grokhotkov (bot) 20b9e06e92 ci: add API compatibility check job for merge requests
Add a check_api_compatibility CI job that uses esp-api-check to detect
breaking API changes in merge requests. The job compares API
declarations between the MR base and head commits using libclang, and
posts a discussion thread on the MR if WARNING or BREAKING changes are
found.

- Add CI job in host-test.yml with clang toolchain and allow_failure
- Add test_api_check project for CMake configuration with all
  components enabled
- Define __DOXYGEN__ and IDF_DOC_BUILD so the checker can see
  declarations behind these guards

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 17:12:40 +01:00
Sudeep Mohanty 8e66b2408d ci(buildv2): run full test suite for buildv2 in host and Windows
Remove explicit test file list from pytest_buildv2_system so all tests
run by default. buildv2_skip marks handle exclusions.
2026-02-27 12:57:02 +01:00
Frantisek Hrbata 66c0a4d658 Merge branch 'fix/cmakev2_linux_target' into 'master'
fix(cmakev2): linux target fixes

Closes IDFGH-17121

See merge request espressif/esp-idf!45315
2026-02-09 14:09:36 +01:00
Fu Hanxi 1c9e7d209d ci: streamline custom before_script checkout code to preclone script 2026-02-05 09:26:56 +01:00
Frantisek Hrbata 6e5d6b75ae feat(test_build_system): allow buildv2 specific tests
Currently, cmakev2 is being tested only in backward-compatible mode by
using the existing cmakev1 tests with the cmakev2 test application. We
also need to add tests specific to cmakev2, and it is convenient to
reuse the existing build system testing framework. Let's add a `buildv2`
subdirectory to the existing `tools/test_build_system` directory and use
the `pytest_collection_modifyitems` hook to ignore tests in this
directory unless the `--buildv2` option is used.

Without the `--buildv2` option, only the existing cmakev1 tests are
executed and tests in `buildv2` directory are skipped. With the
`--buildv2` option, the existing cmakev1 tests run with the cmakev2
testing application for backward compatibility testing, and all cmakev2
tests within the `buildv2` subdirectory are also executed.

Note: we cannot use the `pytest_ignore_collect` hook, because the
`--buildv2` option is not known to the pytest, so the
`config.getoption('--buildv2', False)` returns always False. We would
likely need to add the `--buildv2` option in the conftest.py in the
esp-idf root directory.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>

fix: lsadjf las jflasjfl aslfsald asl fsadlf sladsal jfsadfas

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-01-22 15:41:05 +01:00
Roland Dobai 8bbcdb116d ci(gitlab): Improve tools host test dependencies 2026-01-02 09:20:58 +01:00
Alexey Lapshin 61a93a2737 fix(ci): fix check_public_headers.py to check system headers 2025-12-03 13:31:42 +07:00
C.S.M 904c94ba3a feat(esp32s31): Add esp_hw_support component and header ci support 2025-11-27 11:18:52 +08:00
Fu Hanxi accfcc96f4 ci: move host test unittest jobs to pytest 2025-11-20 09:07:22 +01:00
Fu Hanxi fa776a7d50 ci: move host test jobs into host-test.yml 2025-11-19 10:54:26 +01:00
Fu Hanxi 0922674c04 ci: run macos with tart runners 2025-11-18 17:02:11 +01:00
Euripedes Rocha Filho a87d3e1040 ci: Removes esp-mqtt host test
Test is failing and was moves to esp-mqtt already
2025-09-29 10:05:12 +02:00
Roland Dobai cb84b6860a ci: Support known failure cases in pytests of test_tools 2025-09-26 08:29:55 +02:00
Guillaume Souchere f8cb539e29 feat(heap): Update test to CMake and use Catch2 component 2025-09-18 10:07:08 +02:00
Guillaume Souchere 903d613a4e feat(esp_gdbstub): Update test to CMake and use Catch2 component 2025-09-18 10:07:08 +02:00
Marek Fiala 9d35d63651 feat(cmake): Update minimum cmake version to 3.22 (whole repository) 2025-08-19 14:44:32 +02:00
Peter Dragun 519042a1e2 feat: Deprecate Python 3.9
BREAKING CHANGE:
- Minimal supported Python version is now 3.10.
2025-08-01 08:05:10 +02:00
Fu Hanxi 76181e5fce ci: skip app downloader for host test cases 2025-07-16 14:11:08 +02:00
Fu Hanxi 7ada32c39a ci: apply idf-ci for artifacts 2025-07-09 10:33:29 +02:00
Fu Hanxi a5257dcc39 ci: apply idf-ci pytest plugin
Removed

- target markers. Now must use target as parametrization in esp-idf
- host test markers. Now will be automatically added with linux target and qemu marker
2025-07-09 10:33:28 +02:00
Fu Hanxi f33469dd63 ci: apply idf-ci build run
removed script:

- tools/ci/dynamic_pipelines/scripts/child_pipeline_build_apps.py -> idf-ci build run
- tools/ci/ci_build_apps.py -> idf-build-apps build

moved from remove from idf_pytest/constants.py to .idf_build_apps.toml

- DEFAULT_FULL_BUILD_TEST_COMPONENTS
- DEFAULT_FULL_BUILD_TEST_FILEPATTERNS
- DEFAULT_IGNORE_WARNING_FILEPATH
- DEFAULT_BUILD_LOG_FILENAME
- DEFAULT_SIZE_JSON_FILENAME
2025-07-09 10:33:28 +02:00
Fu Hanxi 4d7372beab Revert "ci: replace ci_fetch_submodules.py with submodule cache"
This reverts commit 0af3e2b1b2.
2025-06-25 08:01:06 +02:00
Fu Hanxi 561f53cd24 Merge branch 'ci/remove-submodule-fetch-script' into 'master'
Ci/remove submodule fetch script

Closes IDFCI-2980

See merge request espressif/esp-idf!39992
2025-06-23 19:22:19 +02:00
Fu Hanxi 0af3e2b1b2 ci: replace ci_fetch_submodules.py with submodule cache 2025-06-23 11:39:42 +02:00
Fu Hanxi 667ed2a266 ci: remove host_test runner tag, use more precise build, shiny instead 2025-06-19 15:34:07 +02:00
Marek Fiala 335ba6b3c2 test(tools): Added test for installing supported tool version
Added test_export_supported_version_cmake in `test_idf_tools.py`,
that installs and exports supported version of tool - cmake.
2025-06-18 19:33:54 +08:00
Peter Macko c205f50f93 feat(ci): Migrate macOS runners to Parallels VM 2025-06-10 18:08:05 +02:00
Marius Vikhammer b3f52511e0 ci(linux): re-enable failures for test_pytest_linux jobs 2025-04-02 11:20:15 +08:00
Peter Macko 4a1ea4b725 5.5: Update ubuntu base image for esp-env-v5.5 to 24.04, with fixed pipelines 2025-03-31 20:11:57 +08:00
Marius Vikhammer c35b7dca0f Revert "5.5: Update ubuntu base image for esp-env-v5.5 to 24.04"
This reverts commit 60ed896b08.
2025-03-21 14:39:35 +08:00
Peter Macko 60ed896b08 5.5: Update ubuntu base image for esp-env-v5.5 to 24.04 2025-03-20 16:14:35 +08:00
Chen Jichang bfac674769 feat(esp32h4): ci enable public header check (stage7) 2025-03-12 17:19:50 +08:00
Jeroen Domburg a88e719e33 feat(driver): BitScrambler support
This adds an assembler for the BitScrambler assembly language,
plus unit tests for it. It also adds the loopback driver,
which can do BitScrambler operations on memory-to-memory
transfers. Documentation is also included.
2024-12-30 09:39:23 +08:00
Frantisek Hrbata 949f6cb9f7 feat(tools): add idf.py diag reporting tool
The initial implementation of a diagnostic tool that collects valuable
information about esp-idf and failed build to assist in investigating
reported issues.

The gathered information includes environmental variables, details about
the python virtual environment, installed tools, platform information,
project_description.json, sdkconfig, build logs, map file, linker
scripts, and others.

usage:

1) create the default report

   # allow diag to create the report directory name
   $ idf.py diag
   # explicitly specify the report directory
   $ idf.py diag --output <report directory>

2) examine the contents of the generated <report directory> for
   sensitive information and add additional content to the
   <report directory>

3) create report archive zip file that can be shared or attached to
   the reported issue

   $ idf.py diag --zip <report directory>

The tool collects information as described in what are known as recipe
files. A recipe file is a YAML file, similar to an Ansible playbook or a
GitHub action, but much more simplified. Each recipe outlines how to
gather a set of related information. For instance, the manager.yml
recipe gathers data related to the component manager. Each recipe
includes metadata such as its description, tags, and steps. Tags are
used to determine which recipes to use; by default, all built-in recipes
located in tools/idf_py_actions/diag/recipes are used. Steps consist of
a list of commands to be executed. Currently, there are four commands:
file, exec, env, and glob. For more detailed information about recipes,
their format, and commands, please refer to
tools/idf_py_actions/diag/recipes/README.md.

Recipe example for component manager:

description: IDF Component Manager information
tags: [manager, base, project]
output: manager
steps:
  - name: 'IDF Component Manager'
    cmds:
      - exec:
        cmd: 'python -m idf_component_manager version'
        output: manager.ver
      - file:
        path: '${PROJECT_DIR}/dependencies.lock'
      - glob:
        # Gather all idf_component.yml files from the project directory and
        # save them in directories relative to the project directory within
        # the idf_component directory.
        pattern: 'idf_component.yml'
        recursive: true
        relative: true
        path: '${PROJECT_DIR}'
        output: 'idf_component/'

Create report for manager

1) all recipes with manager tag

   $ idf.py diag --tag manager

2) use only the manager recipe explicitly; built-in recipes can be
   referenced simply by their name, but all recipes can be referenced
   by their path

   $ idf.py diag --recipe manager
   or
   $ idf.py diag --recipe <full path>

To display available recipes, use

   $ idf.py diag --list

and to verify recipes, use

   $ idf.py diag --check

Both --list and --check honers the --tag and --recipe options.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-12-27 12:08:59 +01:00
gaoxu 3e30d2e928 feat(esp32h21): ci enable public header check (stage7) 2024-12-24 16:44:08 +08:00
Alexey Lapshin 2a6e08431b Merge branch 'feature/move-gdb-options-to_project_description_json' into 'master'
feat(debugging): move gdbinit generation to CMake

Closes IDF-11489

See merge request espressif/esp-idf!34779
2024-11-20 14:30:40 +08:00
Alexey Gerenkov 941a7ee17f change(ci): Add qemu host tests for esp32c3 builds with Clang 2024-11-19 17:33:51 +03:00
Alexey Lapshin 48a49c8154 feat(debugging): move gdbinit generation to CMake
This feature is useful for 3rd-party software to run GDB with predefined
options that described in project_description.json file

allow to pass custom options to "idf.py gdb":

  --gdb-commands: command line arguments for gdb. (without changes)
  -ex: pass command to gdb.
  -x: pass gdbinit file to gdb. Alias for old --gdbinit command
2024-11-19 16:41:38 +07:00
Frantisek Hrbata a4acbd2758 feat: Drop Python 3.8 support
Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-11-12 17:02:26 +08:00
Fu Hanxi 2a5743c0c5 ci: target-test job skip installing toolchain, only install python env
also run with collapsed time section to better track run time
2024-11-08 11:17:57 +01:00
radek.tandler 6a23790608 remove(nvs_flash/test_nvs_host): Old make based host tests removed after complete migration 2024-10-01 15:25:27 +02:00
Fu Hanxi 44c0faed43 ci: add manual job to make sure soc caps are parsed seamlessly 2024-09-23 09:46:36 +08:00
Adam Múdry 05b356f87f feat(nvs): Test nvs_partition_gen.py and nvs_check.py with pytest
Little fixes in nvs_check.py
2024-08-30 16:21:42 +02:00
Ivan Grokhotkov fc4c445643 test(build_system): move reproducible build test to pytest 2024-08-11 20:24:03 +02:00
Fu Hanxi b5bdc1ac9b ci: add idf-build-apps load soc caps test case 2024-07-29 15:34:26 +02:00
Marius Vikhammer 00a46fedbe ci(qemu): remove allowed to fail attribute from qemu tests 2024-07-26 15:36:32 +08:00