Commit Graph

1242 Commits

Author SHA1 Message Date
Jakub Kocka
c082e6a25d ci(tools): Keep Windows build-system work dir short and logs off the live log
Relative CI_PROJECT_DIR after cd nested --work-dir under tools/test_build_system
and blew MAX_PATH. Save failed-command output next to artifacts instead of
streaming a 12 KB record that still hangs shard 3/6.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 20:45:13 +08:00
Jakub Kocka
93f39c9169 ci(tools): Avoid live-log the hints test failure on Windows 2026-09-17 20:45:13 +08:00
Sudeep Mohanty
6933b41314 Merge branch 'feat/ulp_component_split' into 'master'
refactor(ulp): separate the ULP coprocessor code from the driver

Closes IDF-15957

See merge request espressif/esp-idf!52268
2026-09-15 11:49:23 +02:00
Vojtech Piroch
19676ffa46 fix(tools): Detect serial port matching the project target
Auto-detect used to pick the first Espressif device, even when it did
not match IDF_TARGET. With several boards attached, flash/monitor could
talk to the wrong chip.

Pass the project target into esptool so unmatched ports are skipped.
Resolve the port after ensure_build_directory() so the target is known.
For monitor on an unconfigured project, probe the connected chip and
pass it directly to idf_monitor without configuring the project.
2026-09-02 17:18:57 +08:00
Sudeep Mohanty
cb2b2f9b78 refactor(ulp): build the ULP coprocessor code as per-architecture components
A ULP program is built against ulp_riscv, lp_core or ulp_fsm, each stating its
own sources, dependencies and memory layout. Sources shared with the driver
stay in components/ulp.
2026-09-02 09:31:07 +02:00
Sudeep Mohanty
1bec6e09d9 refactor(ulp): make the ULP subproject directory explicit
components/ulp/cmake holds the project that builds a ULP program. Name it
subproject, as the bootloader does.
2026-09-02 09:31:07 +02:00
Fu Hanxi
50176b3441 ci: move check_submodule_sync to ci/actions/common 2026-08-26 13:42:28 +02:00
Ivan Grokhotkov
e0b60fcf06 ci: don't download artifacts in check_submodule_sync 2026-08-18 13:56:26 +02:00
Evgeny Torbin
e7644aaa62 ci: add description for app_size_metrics_full_report label to readme 2026-08-18 10:24:26 +02:00
morris
3438867a73 Merge branch 'lld_orphan' into 'master'
esp_system: enable linking with LLD on RISC-V targets

Closes LLVM-216

See merge request espressif/esp-idf!48712
2026-08-17 14:40:36 +08:00
Stefan Stipanovic
d0ae774d59 fix(esp_system): enable linking with LLD on RISC-V targets 2026-08-13 21:23:36 +02:00
Fu Hanxi
cfca633f01 ci: use main branch of ci/actions/common 2026-08-13 15:26:02 +02:00
Fu Hanxi
c560de5566 ci: fix double quotes with MR_MODIFIED_FILES 2026-08-05 21:16:12 +02:00
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
Ivan Grokhotkov
d3766ffdea Merge branch 'feature/build-file-command' into 'master'
feat: add idf.py build-file command for standalone C files

Closes IDF-15453

See merge request espressif/esp-idf!47618
2026-07-22 10:34:38 +02:00
Ivan Grokhotkov
16275df0a1 feat: add idf.py build-file command for standalone C files
Add a new idf.py extension that allows building standalone C files
without requiring full project boilerplate. Source files can include
optional YAML frontmatter in block comments to specify sdkconfig
options, component dependencies, and target configuration.

When the frontmatter configuration changes, the stale sdkconfig is
removed so the new defaults are applied, and a target change also
clears the build directory since IDF_TARGET is pinned in the CMake
cache.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 22:04:41 +02:00
Fu Hanxi
b260448d30 Merge branch 'ci/common-scripts' into 'master'
Ci/common scripts

Closes RDT-933

See merge request espressif/esp-idf!50564
2026-07-20 14:18:36 +02:00
Marek Fiala
8c08c75f48 feat(tools): adopt esp-pylib for idf.py logging and errors
Migrate idf.py and its actions to the shared esp-pylib library:
- add esp-pylib (and esp-pylib[ide]) to the core/ide requirements
- base FatalError on esp_pylib.errors.FatalError, keeping the idf.py ctx cleanup
- replace the local raw-ANSI helpers (red_print/yellow_print/print_warning/
  color_print) with esp_pylib.logger.log (warn/err/note/hint) across the
  idf.py actions
- install esp_pylib exception reporting at the idf.py entry point and silence
  the logger during shell completion
- update affected tests for the new prefixes/line wrapping
- add normalize_output() helper and unify terminal env in conftest to handle
  Rich line-wrapping in CI assertions

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 20:19:07 +08:00
Fu Hanxi
03b1ef7dc3 ci: macos vm use dockerhub version 2026-07-15 13:58:56 +02:00
Fu Hanxi
2e271ea0c0 ci: use gitlab ci lint api instead of yaml parsing 2026-07-15 13:58:56 +02:00
Fu Hanxi
44687303cf ci: move dynamic pipeline related jobs to ci/actions/common 2026-07-15 13:56:55 +02:00
Fu Hanxi
13c3d51631 ci: move before_scripts, after_scripts, windows macos rules to ci/actions/common 2026-07-15 13:56:19 +02:00
Fu Hanxi
dbeab94760 ci: remove unused code 2026-07-15 13:54:06 +02:00
igor.udot
c8c9b5940a ci: update check-version tags 2026-07-13 10:27:46 +08:00
Fu Hanxi
d8f4d6ccda ci: remove build report and failed job report 2026-07-07 11:07:16 +02:00
Fu Hanxi
148c5e26f7 ci: remove pip-cache
we have global pip mirror now
2026-07-07 11:06:03 +02:00
Sudeep Mohanty
26b24ee2fa Merge branch 'task/buildv2_full_pipeline' into 'master'
Enable full buildv2 pipeline

Closes IDF-14180

See merge request espressif/esp-idf!49668
2026-07-03 11:28:57 +02:00
Evgeny Torbin
bf95b231e4 ci: check file existence before shuffling test apps 2026-07-01 16:50:04 +02:00
Sudeep Mohanty
2d3f8399ee ci(buildv2): add build/QEMU/Linux jobs for Build system v2
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).
2026-07-01 13:17:25 +02:00
igor.udot
5d73bec7cb ci: moved auto_translate stage 2026-06-26 10:04:51 +08:00
Dai Zi Yan
811762c9f7 Merge branch 'feat/implement_auto_trans' into 'master'
feat: implement auto translation through MR label

Closes DOC-14299 and DOC-14835

See merge request espressif/esp-idf!48906
2026-06-25 01:57:15 +00:00
Marek Fiala
2dd6b604fa feat(tools): mcp-server accepts project_dir from chat
At the same time, it's possible to start idf.py mcp-server
outside ESP-IDF project directory.

Added ESP-IDF mcp server tests
2026-06-24 18:46:39 +08:00
Adam Múdry
fa8039b5ca Merge branch 'test/vfs_fix_register_check' into 'master'
test(vfs): Test changes regarding VFS register incorrect check fix and fix VFS host test not being run at all

See merge request espressif/esp-idf!49674
2026-06-23 14:02:16 +02:00
Adam Múdry
670fb68bc7 test(vfs): Test changes regarding VFS register incorrect check fix 2026-06-22 14:48:13 +02:00
Jakub Kocka
2740359845 ci: Remove PowerShell pre-commit hook and check_powershell job 2026-06-22 13:22:57 +02:00
daiziyan
8272fa5d87 feat: implement auto translation through MR label 2026-06-22 15:24:27 +08:00
Martin Vychodil
2573bf3988 Merge branch 'feat/bdl_ioctl_checker' into 'master'
feat(esp_blockdev): add build-time ioctl command reservation overlap checker

Closes IDF-15799

See merge request espressif/esp-idf!49670
2026-06-19 12:40:28 +08:00
harshal.patil
6b417e9d47 fix(esp_common/esp_fault): make ESP_FAULT_ASSERT survive optimization
ESP_FAULT_ASSERT(C) was silently deleted by the optimizer when C is a cached
flag/status already proven by a preceding `if (!C) return/goto`: the compiler
folds C to a constant and drops all three checks, removing the fault-injection
protection with no warning.
2026-06-17 16:45:29 +05:30
Igor Udot
dbb65e8712 Merge branch 'ci/generate-build-child-pipeline' into 'master'
ci: start generate_build_child_pipeline with pre_commit

See merge request espressif/esp-idf!49721
2026-06-16 20:24:09 +08:00
igor.udot
26c4f83080 ci: start generate_build_child_pipeline with pre_commit 2026-06-16 17:40:52 +08:00
Tomáš Rohlínek
a9f545bcea feat(esp_blockdev): add build-time ioctl command reservation overlap checker 2026-06-16 11:38:22 +02:00
Chen Yudong
d39ba32acb ci: update pre-commit to use new docker image 2026-06-16 12:51:24 +08:00
Jakub Kocka
9899280957 fix(ci): Tolerate w32time already running on Windows CI VMs
net start w32time returns exit 2 on warm snapshots; that aborted before_script
before pytest. Continue with NTP config and w32tm /resync as intended.
2026-06-04 14:45:05 +08:00
Jakub Kocka
2e5d930e6b fix(tools): Windows builds when paths contain spaces (prefix_map, ldgen, CI)
- Harden prefix_map.cmake for paths with spaces on Windows

- ldgen: fragments-list-file, list normalization, CMake integration (tools/cmake + cmakev2)

- CI exclude list for check_tools; test_spaces bundle tweak

Made-with: Cursor
2026-06-04 14:45:05 +08:00
Fu Hanxi
21d6f9b879 Merge branch 'ci/remove_esp-metrics_cache' into 'master'
ci: remove esp-metrics pip cache

See merge request espressif/esp-idf!49022
2026-06-01 11:14:45 +02:00
Igor Udot
f72dbb87ec Merge branch 'ci/gcc-static-analyzer-cache' into 'master'
ci: enable cache for gcc_static_analyzer

See merge request espressif/esp-idf!49086
2026-06-01 16:06:03 +08:00
igor.udot
ee65c61a3b ci: enable cache for gcc_static_analyzer 2026-06-01 15:17:13 +08:00
Chen Yudong
feed036fe7 ci: remove esp-metrics pip cache 2026-05-29 09:56:13 +08:00