Commit Graph
178 Commits
Author SHA1 Message Date
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
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 26c4f83080 ci: start generate_build_child_pipeline with pre_commit 2026-06-16 17:40:52 +08:00
Marius Vikhammer c06bf7de44 ci(build): removed and replaced template with regular test-apps 2026-04-29 15:21:30 +08:00
igor.udot 05f8f55807 ci: after pre-check-complete start build 2026-04-17 08:46:20 +08:00
igor.udot 5566e5e022 ci: shuffle precomputed app lists before parallel build slicing 2026-03-24 17:08:36 +08:00
Fu Hanxi c37ec038ad ci: replace custom gen_disabled_report.py to idf-ci build collect report 2026-02-10 10:54:28 +01:00
Fu Hanxi 1c9e7d209d ci: streamline custom before_script checkout code to preclone script 2026-02-05 09:26:56 +01:00
Evgeny Torbin 181a0a8fca ci: fix uploading build artifacts 2025-11-28 13:57:05 +01:00
Fu Hanxi fa776a7d50 ci: move host test jobs into host-test.yml 2025-11-19 10:54:26 +01:00
Fu Hanxi 8ae96e188f ci: cleanup gcc_static_analyzer and .rules:build 2025-11-19 10:50:53 +01:00
Fu Hanxi 2988329deb ci: cleanup build_template_app jobs 2025-11-19 10:29:26 +01:00
Fu Hanxi 04a9e1ba23 ci: cleanup build_clang_test_apps jobs 2025-11-19 10:29:23 +01:00
Fu Hanxi 0f0d97f958 ci: cleanup after_script:build related rules 2025-11-19 10:27:07 +01:00
Fu Hanxi 5304e95ac5 ci: remove generate_build_child_pipeline.py 2025-11-19 10:26:53 +01:00
Sudeep Mohanty c7b4804ffa Merge branch 'feat/cmakev2_features_and_test_updates' into 'master'
Enable more cmakev2 CI tests and support dfu, uf2 targets

Closes IDF-14181, IDF-14182, and IDF-14183

See merge request espressif/esp-idf!43460
2025-11-19 10:15:08 +01:00
Fu Hanxi 11ae9be9ea Merge branch 'ci/macos-tart' into 'master'
Ci/macos tart

Closes ITOPS-165

See merge request espressif/esp-idf!43346
2025-11-19 08:26:55 +01:00
Fu Hanxi 0922674c04 ci: run macos with tart runners 2025-11-18 17:02:11 +01:00
Evgeny Torbin d78c9317be ci: update artifact pattern for size.json 2025-11-18 10:44:40 +01:00
Sudeep Mohanty f72292b0d7 test(cmakev2): Enable test_rebuild.py for buildv2 CI tests
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.
2025-11-18 10:12:12 +05:30
Sudeep Mohanty bf8129433a test(cmakev2): Enabled test_idf_extensions.py for builv2 CI tests 2025-11-18 10:12:12 +05:30
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
Sudeep Mohanty 496ebf0583 feat(cmakev2): Enabled test_cmake.py for cmakev2 in CI 2025-10-30 17:17:49 +08:00
Sudeep Mohanty 84e65e5d24 feat(cmakev2): Enable test_components.py for cmakev2 in CI 2025-10-30 17:17:49 +08:00
Sudeep Mohanty 0666fb28ea feat(cmakev2): Enabled test_common.py for cmakev2 2025-10-30 17:17:49 +08:00
Sudeep Mohanty c63063f3f6 feat(cmakev2): Enabled test_versions.py for cmakev2 2025-10-30 17:17:49 +08:00
Sudeep Mohanty 3f69493a1e feat(cmakev2): Enable completely passing build tests for cmakev2 in CI
This commit enables the following tests for cmakev2 in CI which do not
need any updates:
- test_bootloader.py
- test_git.py
- test_kconfig.py
- test_partition.py
- test_reproducible_build.py
- test_sdkconfig.py
2025-10-30 17:17:49 +08:00
Frantisek Hrbata 6e643709cc ci(cmakev2): enable test_build.py test for cmakev2
Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-10-30 17:17:49 +08:00
Sudeep Mohanty 0c69d53b68 test(cmakev2): Enable CI tests for component manager for cmakev2
This commit adapts the component manager build tests for cmakev2 and
enables them for CI test runs.
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
Fu Hanxi c27bccaf81 Merge branch 'ci/fix-pipeline-commit-sha-in-build-docker' into 'master'
Ci/fix pipeline commit sha in build docker

Closes IDFCI-3918

See merge request espressif/esp-idf!42381
2025-10-09 13:22:45 +02:00
Fu Hanxi b207b3320b ci: use merged result commit in build_docker job
also change to shanghai runners
2025-10-08 13:59:18 +02:00
Fu Hanxi 3175db5346 ci: move extra targets need to be built by default to --additional-build-targets 2025-09-29 13:22:42 +02:00
Marek Fiala efa75a9b60 test(tools): Added minimal supported cmake versions build system tests 2025-09-22 16:47:42 +02:00
Xiao Xufeng 5c6150033a ci: generate report for disabled apps 2025-08-31 00:24:24 +08: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 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 c80d0aded4 ci: apply idf-ci gitlab dynamic-pipeline-variables
Renamed env vars:

- TEST_CASE_FILTERS -> IDF_CI_SELECT_BY_FILTER_EXPR
- BUILD_AND_TEST_ALL_APPS -> IDF_CI_SELECT_ALL_PYTEST_CASES

Removed env vars;

- IS_MR_PIPELINE (could use CI_MERGE_REQUEST_IID)
- REPORT_EXIT_CODE -> IDF_CI_IS_DEBUG_PIPELINE (fail fast)
- PYTEST_IGNORE_COLLECT_IMPORT_ERROR -> always skip import error
2025-07-09 10:33:27 +02:00
Fu Hanxi 0d5b3e60ac ci: remove --enable-pytest from install.sh 2025-07-09 10:33:26 +02:00
Fu Hanxi fcca033ff6 Merge branch 'ci/raise_macos_cache_to_50g' into 'master'
macOS runners - set CCACHE back to 50GB to help VMs

See merge request espressif/esp-idf!39950
2025-06-24 11:10:19 +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
Peter Macko c2ff554878 ci: macOS runners - set CCACHE back to 50GB to help VMs 2025-06-18 08:17:00 +02:00
Peter Macko c205f50f93 feat(ci): Migrate macOS runners to Parallels VM 2025-06-10 18:08:05 +02:00
Samuel Obuch e80293fdbe ci: select OpenOCD binary based on runner 2025-05-22 20:43:39 +02:00
Fu Hanxi 9f68214ab7 ci: child pipeline default value to avoid circular dependency issue 2025-05-14 10:16:36 +02:00
Fu Hanxi dc05b46ab5 ci: inherit more variables
this is somehow a temporary workaround, the long-term solution shall be
related to `inherit:variables`
2025-05-13 13:27:42 +02:00