J. Nick Koston
f3b75c0369
[ci] Extract integration test bucketing into a pure function
...
Pull the run_all glob expansion + bucket computation out of main() into
_compute_integration_test_buckets() returning (run_integration, buckets).
The boundary tests now call this helper directly instead of driving
main() through ~14 patched dependencies, which both shrinks the test
helper and removes duplication with the existing test_main_* fixtures.
2026-04-29 18:41:17 -05:00
J. Nick Koston
8122ae4888
[ci] Address Copilot review on integration-test bucketing
...
- Emit each bucket's `tests` as a JSON list of file paths instead of a
space-joined string. The workflow now uses jq to build a bash array,
removing word-splitting / glob hazards on test paths.
- Guard against an empty integration test list after `run_all` expansion:
if the glob returns nothing, suppress the run rather than invoking
pytest with no path argument (which would collect tests outside
tests/integration/).
- Add boundary-case unit tests for the bucketing decision: empty
selection, explicit small lists, exactly threshold (single bucket),
one over threshold (3 buckets), and run_all-with-empty-glob (no run).
2026-04-29 18:38:20 -05:00
J. Nick Koston
c3ebc39262
[ci] Split integration tests into 3 buckets when count > 10
...
When more than 10 integration tests are scheduled (or any change that
triggers run_all, e.g. core/infra changes that would run all 117 files),
fan out the pytest job into 3 parallel matrix entries. Below the
threshold, a single bucket runs as before, so small targeted PRs see no
extra job overhead.
determine-jobs.py now owns the bucketing end-to-end: it expands run_all
into the explicit glob of tests/integration/test_*.py and pre-splits the
sorted list using the same balanced contiguous-partition formula as
script/clang-tidy. The CI workflow consumes the precomputed buckets via
fromJson() in the matrix, mirroring how component-test-batches works,
so no shell-side splitting is needed.
The previous integration-tests-run-all and integration-test-files
workflow outputs are replaced by a single integration-test-buckets
list-of-objects ({name, tests}); the integration-tests gate boolean is
unchanged.
2026-04-29 18:16:43 -05:00
Jonathan Swoboda
53b682e48f
[ci] Bump clang-tidy from 18.1.8 to 22.1.0.1 ( #16078 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-29 20:19:33 +00:00
J. Nick Koston
985dba9332
[core] Defer heavy module-scope imports in __main__, loader, and config ( #15955 )
2026-04-29 13:17:59 -05:00
J. Nick Koston
49c7a6928e
[script] Fix cpp_unit_test crash for non-MULTI_CONF platform components ( #16104 )
2026-04-29 14:32:13 +12:00
J. Nick Koston
f05243bd9d
[api] Add 48-bit MAC address varint fast path for BLE advertisements ( #15988 )
2026-04-29 13:48:35 +12:00
J. Nick Koston
0a4d9b430f
[ci] Add import-time regression check for esphome.__main__ ( #15954 )
2026-04-28 14:05:12 +00:00
Jesse Hills
876c8c4c2a
[ci-custom] Lint imports of esphome.components.const outside components ( #16068 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-28 05:59:02 -05:00
J. Nick Koston
df987a7ffb
[ci-custom] Suggest uint32_to_str/int8_to_str for integer formatting ( #15970 )
2026-04-26 07:22:34 -05:00
J. Nick Koston
4cab262ef8
[ci] Trigger CodSpeed benchmarks on host platform changes ( #15995 )
2026-04-25 17:18:21 -04:00
Keith Burzinski
70b1d9a087
[api_protobuf] Support compound ifdef conditions in proto generator ( #15930 )
2026-04-22 17:57:15 -05:00
J. Nick Koston
67576d4879
[rp2040] Tune oversized lwIP defaults for ESPHome ( #14843 )
2026-04-22 06:29:13 +02:00
J. Nick Koston
0d3a3552da
[core] Move heap-allocating helpers to alloc_helpers.h/cpp ( #15623 )
2026-04-21 04:39:49 +02:00
J. Nick Koston
b293be23b0
[ci] Honor CONFLICTS_WITH when grouping component tests ( #15834 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-04-18 08:11:38 -05:00
J. Nick Koston
e7194dce75
[core] Deduplicate entity type boilerplate with X-macro pattern ( #15618 )
2026-04-15 17:45:01 -10:00
J. Nick Koston
53ce2a2f7f
[api] Add speed_optimized to SubscribeLogsResponse ( #15698 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-04-14 06:25:05 +12:00
J. Nick Koston
5b4385a084
[api] Add speed_optimized proto option for hot encode paths ( #15691 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-04-13 07:42:31 +00:00
J. Nick Koston
c62a75ee17
[benchmark] Use -Os to match firmware optimization level ( #15688 )
2026-04-13 01:40:33 -05:00
J. Nick Koston
ec420d5792
[api] Add (inline_encode) proto option for sub-message inlining ( #15599 )
2026-04-10 15:33:56 +12:00
J. Nick Koston
b83edf6c17
[script] Resolve IncludeFile objects in component config merge ( #15575 )
2026-04-08 08:57:56 -10:00
J. Nick Koston
c7513b9262
[ci] Add lint check for test package key matching bus directory ( #15547 )
2026-04-07 16:01:18 -10:00
J. Nick Koston
10b38e1588
[api] Add max_data_length proto option and optimize entity name/object_id ( #15426 )
2026-04-07 03:31:01 +00:00
J. Nick Koston
d15fa84f4f
[api] Auto-derive max_value for enum fields in protobuf codegen ( #15469 )
2026-04-06 14:39:55 -10:00
J. Nick Koston
2b5ee69eb2
[api] Speed up protobuf encode 17-20% with register-optimized write path ( #15290 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-04-06 12:42:18 -10:00
J. Nick Koston
1de94c1a84
[api] Add max_value proto option for constant-size varint codegen ( #15424 )
2026-04-05 18:02:06 -10:00
Tomer27cz
f01762ea44
[ci] move import to function ( #15440 )
2026-04-05 19:17:52 -04:00
Clyde Stubbs
6f05e3d204
[ci] Run ci-custom.py as a pre-commit check ( #15411 )
2026-04-03 12:54:44 +11:00
Guillermo Ruffino
ef65e47bc5
[schema] generator fixes ( #15276 )
2026-03-31 13:08:50 +13:00
J. Nick Koston
8a802ca666
[benchmark] Add BLE raw advertisement proto encode benchmarks ( #15289 )
2026-03-29 11:54:07 -10:00
Jonathan Swoboda
b6abfec82e
[core] Fix area/device hash collision validation not running ( #15259 )
2026-03-27 22:22:24 -04:00
Jonathan Swoboda
3cd50f0495
[ci] Block new CONF_ constants from being added to esphome/const.py ( #15145 )
2026-03-24 09:31:08 -10:00
J. Nick Koston
793813790a
[api] Precompute tag bytes for forced varint and length-delimited fields ( #15067 )
2026-03-24 01:52:39 +00:00
J. Nick Koston
382de7ca90
[api] Store dump strings in PROGMEM to save RAM on ESP8266 ( #14982 )
2026-03-23 13:40:53 -10:00
Daniel Kent
4c1363b104
[spi] Add LOG_SPI_DEVICE macro ( #15118 )
2026-03-23 15:07:40 -04:00
J. Nick Koston
4b0c711f77
[ci] Ban std::bind in new C++ code ( #14969 )
2026-03-23 08:23:35 -10:00
J. Nick Koston
36d2e58b11
[api] Make ProtoDecodableMessage::decode() non-virtual ( #15076 )
2026-03-23 08:23:08 -10:00
Kevin Ahrendt
5a984b54cf
[audio] Bump microOpus to avoid creating an extra opus-staged directory ( #14974 )
2026-03-23 08:31:05 -04:00
J. Nick Koston
f4097d5a95
[api] Devirtualize API command dispatch ( #15044 )
2026-03-23 19:57:40 +13:00
J. Nick Koston
fbe3e7d99c
[api] Emit raw tag+value writes for forced fixed32 key fields ( #15051 )
2026-03-22 15:28:46 -10:00
J. Nick Koston
1920d8a887
[benchmark] Add noise encryption benchmarks ( #15037 )
2026-03-20 17:35:17 -10:00
J. Nick Koston
151f71e033
[ci] Add libretiny and zephyr to memory impact platform filter ( #14985 )
2026-03-19 14:12:15 -10:00
Javier Peletier
0a3393bed3
[core] Disable LeakSanitizer in C++ unit tests ( #14712 )
2026-03-18 23:13:36 -10:00
Javier Peletier
0c5f055d45
[core] cpp tests: Allow customizing code generation during tests ( #14681 )
...
Co-authored-by: J. Nick Koston <nick@home-assistant.io >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-03-18 00:16:01 +00:00
J. Nick Koston
1670f04a87
[core] Add CodSpeed C++ benchmarks for protobuf, main loop, and helpers ( #14878 )
2026-03-17 12:29:38 -10:00
J. Nick Koston
b3210de374
[core] Extract shared C++ build helpers from cpp_unit_test.py ( #14883 )
2026-03-17 08:53:36 -10:00
Diorcet Yann
73ca0ff106
[core] Small improvements ( #14884 )
2026-03-17 09:22:31 -04:00
Jonathan Swoboda
18a082de30
[ci] Support URL and version extras in generate-esp32-boards.py ( #14828 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-03-15 14:58:01 -04:00
J. Nick Koston
5e3c44d48f
[rp2040] Add CI check for boards.py freshness ( #14754 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-03-13 13:28:55 -10:00
J. Nick Koston
56f7b3e61b
[ci] Only run integration tests for changed components ( #14776 )
2026-03-13 13:20:35 -10:00