Commit Graph
261 Commits
Author SHA1 Message Date
Sudeep Mohanty 514f69c1f3 Merge branch 'fix/buildv2_fake_pass_pipeline' into 'master'
ci(buildv2): skip patching the fake_pass build child pipeline

Closes ITOPS-314 and IDF-16025

See merge request espressif/esp-idf!51259
2026-08-05 15:16:40 +02:00
Sudeep Mohanty 06963baf0b test(ulp): add custom linker host tests
Add build-only host tests for LP-core custom linker layouts supplied through the
LINKER option. Cover the positive paths (a full-replacement layout, a
multi-region layout with a fixed-address section, a run-from-HP-mem layout, and
memory protection) and the link-time and configure-time checks (reset-vector
placement, sizing, shared-memory overrun, the MEMPROT RX/RW boundary, a missing
reset vector, and a missing LINKER script).
2026-07-31 14:50:09 +02:00
Sudeep Mohanty e69d5bb697 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.
2026-07-28 10:47:57 +02:00
Fu Hanxi dbeab94760 ci: remove unused code 2026-07-15 13:54:06 +02:00
Fu Hanxi 148c5e26f7 ci: remove pip-cache
we have global pip mirror now
2026-07-07 11:06:03 +02:00
Guillaume Souchere d670774f5c feat(esp_common): implement composable error code registration via link-time arrays
Refactor the esp_err_to_name() system to decouple esp_common from
higher-level components. Instead of a monolithic generated table,
each component registers its error codes into a dedicated linker
section (.esp_err_msg_table) via idf_define_esp_err_codes() in its
CMakeLists.txt.

New files:
- tools/err_codes_extract.py: extract ESP_ERR_* defines from headers to CSV
- tools/err_codes_to_c.py: generate C source placing entries into linker section
- tools/err_codes_to_rst.py: generate RST documentation from error codes
- tools/cmake/err_codes.cmake: CMake module providing idf_define_esp_err_codes()
- components/esp_common/include/esp_err_codes.h: esp_err_msg_t typedef
- components/esp_common/src/esp_err_to_name_new.c: new lookup using link-time array
- tools/test_apps/build_system/err_codes_check/: CI test app

Changes:
- Remove all optional component dependencies from esp_common/CMakeLists.txt
- Add .esp_err_msg_table section to all 5 linker scripts
- Register error codes in 18 components via idf_define_esp_err_codes()
- Add new scripts to .gitlab/ci/rules.yml build_check patterns
- use new scripts to generate doc and add CI validation
- Update esp_err.rst to add description of composable code registration
2026-05-28 09:53:32 +02:00
Evgeny Torbin 29455e38c2 ci: remove deprecated SHA update job 2026-05-18 15:58:10 +08:00
Marius Vikhammer c06bf7de44 ci(build): removed and replaced template with regular test-apps 2026-04-29 15:21:30 +08:00
Fu Hanxi 3c6ba5ca38 ci: improve pattern that triggers build check 2026-04-23 09:27:55 +02:00
wangmengyang 11268d8bfb feat(bt): Add initial support of Bluetooth Classic on ESP32-S31
- feat(soc_caps): Enable BT Classic and BLE in esp32s31
- Add git submodule for ESP32-S31 bt controller lib files
- changed sdkconfig.defaults and README for Bluetooth Classic examples
- change(docs): Added vendor HCI documentations for ESP32-S31
- change(Bluedroid): Adapt to ESP32-S31 due to some API differences on
  Bluetooth controller from ESP32
- change(bt): Modify CMakeLists.txt to support the Bluetooth dual-mode
  architecture on ESP32-S31
- change(bt): Add ECC P-192 functions to tinycrypt
2026-04-21 17:50:34 +08:00
Linyan Liu 3ef5da096a feat(ble_audio): Support ISO & LE Audio functionalities (Preview) 2026-04-17 09:46:23 +08:00
ShenWeilong 6e359ad99e feat(ble): added ble support for esp32h4 eco1 2026-04-02 14:59:40 +08:00
Fu Hanxi c360d8be98 feat: support moving idf components to component registry
and mark it as root dependency
2026-03-17 21:02:49 +08:00
David Cermak 78017aa02c feat(ci): Add wifi-remote generation check to CI 2026-02-27 09:14:57 +01:00
Frantisek Hrbata 35ded4835d fix(ci): add kconfig_new back to rules.yml
The 8bbcdb116d ("ci(gitlab): Improve tools host test dependencies")
removed `kconfig_new` from rules.yml leading to the following pre-commit
failure.

```bash
Check tools dir files
patterns...........................................................Failed
- hook id: check-tools-files-patterns
- exit code: 1

This test is used for making sure of all the tools dir files are
recorded in .gitlab/ci/rules.yml to trigger the related tests, except
those files should be excluded.
Missing Files:
	tools/kconfig_new/prepare_kconfig_files.py
	tools/kconfig_new/config.env.in
	tools/kconfig_new/confgen.py
	tools/kconfig_new/confserver.py
	tools/kconfig_new/config_buildv2.env.in
Please add these files or glob patterns to ".gitlab/ci/rules.yml" and
put related files under ".patterns-<test_group>" block to trigger
related tests.
Or add them to "tools/ci/exclude_check_tools_files.txt" to exclude them.
```

Fixes: 8bbcdb116d ("ci(gitlab): Improve tools host test dependencies")
Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2026-01-09 10:05:18 +01:00
Roland Dobai 8bbcdb116d ci(gitlab): Improve tools host test dependencies 2026-01-02 09:20:58 +01:00
Fu Hanxi accfcc96f4 ci: move host test unittest jobs to pytest 2025-11-20 09:07:22 +01:00
Fu Hanxi 8ae96e188f ci: cleanup gcc_static_analyzer and .rules:build 2025-11-19 10:50:53 +01:00
Fu Hanxi 0f0d97f958 ci: cleanup after_script:build related rules 2025-11-19 10:27:07 +01:00
Euripedes Rocha Filho 448714b056 remove(mqtt): Moves esp-mqtt to component manager
esp-mqtt is now a managed component at espressif/mqtt
2025-11-11 09:21:37 +01:00
Frantisek Hrbata e65fc5ee09 ci(cmakev2): run the buildv2 tests only if the buildv2 label is set
Currently, the buildv2 tests are initiated using the same patterns as
the tests for the current build system. This means that any change in
the current build system will also trigger the buildv2 tests. Initially,
it might be wise not to block the CI for changes in the current build
system in case there is an issue with buildv2. Therefore, let's
explicitly start the buildv2 tests only when the buildv2 label is set.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-10-30 17:17:49 +08:00
Frantisek Hrbata 21430acb4f ci(cmakev2): enable buildv2 CI testing
A new pytest_buildv2_system job has been added to execute selected tests
from the existing test_build_system test suite. Currently, only the
test_non_default_target.py is enabled. The ultimate goal is to run most
of the build system tests with buildv2. This should help ensure
compatibility between IDF build system v1 and v2.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-10-30 17:17:49 +08:00
Mahavir Jain 439b1d6d08 cleanup: move cJSON to component manager 2025-10-06 14:08:06 +05:30
Fu Hanxi 4115f5836a ci: update file patterns CMakeList.txt to CMakeLists.txt 2025-08-12 13:37:51 +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 7c1eacb599 Merge branch 'ci/temp-disable-macos-test' into 'master'
ci: temp disable macos, only trigger by labels and run on master

See merge request espressif/esp-idf!40064
2025-06-24 10:19:18 +02:00
Fu Hanxi d795ecf393 ci: temp disable macos, only trigger by labels and run on master 2025-06-24 09:48:08 +02:00
Fu Hanxi 0af3e2b1b2 ci: replace ci_fetch_submodules.py with submodule cache 2025-06-23 11:39:42 +02:00
Marek Fiala c17baef38d feat(test): Lower the scope when win tests are automatically executed
Introduced new rule "atterns-build_system_win", that coveres scope
for windows test. It currently contains only "tools/test_build_system/**/*".
2025-05-27 11:24:58 +02:00
Fu Hanxi 9a9438b79a ci: improve rules for deploy jobs 2025-05-13 13:27:42 +02:00
Marek Fiala c288935305 ci(tools): Run Win build system tests when patterns-build_system changed 2025-04-15 15:09:27 +02:00
Peter Dragun de6206ed3a ci: use ruff for formatting and linting all python files 2025-03-27 10:44:27 +01:00
armando ac8cfadab0 refactor(psram): cleanup psram component code structure 2025-03-20 15:17:01 +08:00
Igor Udot 13188dc33b Merge branch 'ci/update_patterns-build_check' into 'master'
ci: add build_system example to patterns-build_check

See merge request espressif/esp-idf!37191
2025-02-25 10:34:39 +08:00
igor.udot 7bc8938469 ci: add build_system example to patterns-build_check 2025-02-21 12:25:45 +08:00
Xiao Xufeng bc1965a109 ci(all): upload support status when pushed go github 2025-02-19 13:23:28 +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
Fu Hanxi 647c9bcc53 ci: temp disable sonarqube check. keep it for migrating to codechecker 2024-10-22 13:29:29 +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
Marek Fiala 88527faff8 feat(tools): Added Windows shells support + refactoring 2024-09-05 10:13:04 +02:00
Ivan Grokhotkov fc4c445643 test(build_system): move reproducible build test to pytest 2024-08-11 20:24:03 +02:00
morris dd46392a66 feat(ci): check LL functions not read write register by half word 2024-06-18 14:58:41 +08:00
Aleksei Apaseev 40c8a16ad4 ci: add known failure cases to the target test report
target test report:
- refactor the methods to ensure reusability
- cover report generation with tests
- introduce a known failure tests block in report
- add grafana link to testcases dashboard
2024-05-28 15:36:22 +08:00
Frantisek Hrbata 9df59a2193 ci: add simple test for idf_size.py python compatibility
This adds a simple test that tries to run idf_size.py help and check
if the process does not exit with error. This is just to make sure
that idf_size.py can be used with minimum required python version.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-05-08 13:38:19 +02:00
Fu Hanxi d60c435935 ci: add c5-bt-lib in submodule patterns
also fix the pattern that triggers the check
2024-04-09 12:37:30 +02:00
Roland Dobai 0e318fb6fc fix(ci): Change expected message in tests after dependency checker update
This should fix the tests after 5f798eb78b
has changed the error message.
2024-02-22 08:03:29 +01:00
Marius Vikhammer 852a33f32d ci(build): always build apps if gnore_build_warnings.txt changes 2024-01-29 14:24:57 +08:00