J. Nick Koston
4173f4526e
DNM: probe integration-test bucketing for cover
...
Touches cover/cover.h with a comment so determine-jobs.py routes the
cover component's integration tests into the bucketed split job. Used
to validate the matrix expansion in #16152 .
Do not merge.
2026-04-29 18:41:22 -05:00
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
37bcd7c59f
[ci] Move test helper imports to module level
...
Hoist `import contextlib` and `import io` from inside
_run_main_for_integration_buckets() up to the top of the file.
2026-04-29 18:38:46 -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
J. Nick Koston
b8d24c9e49
[mcp23xxx_base] Reject unsupported interrupt_pin options (inverted, allow_other_uses) ( #16149 )
2026-04-30 11:14:07 +12:00
J. Nick Koston
9b1f5c59bb
[core] Fix null deref in WarnIfComponentBlockingGuard for self-keyed scheduler timers ( #16150 )
2026-04-29 23:05:38 +00:00
Jonathan Swoboda
e4b33fddf5
[esp32] Add ESP-IDF 6.0.1 platform entry ( #16146 )
2026-04-29 18:43:15 -04:00
Jonathan Swoboda
77da64a367
[sx126x] Add cold sleep option and drop unused RTC wakeup bit ( #16144 )
2026-04-29 17:05:51 -04:00
J. Nick Koston
cecccebc64
[core] DelayAction: drop Component inheritance, use self-keyed scheduler ( #16129 )
CI for docker images / Build docker containers (docker, ubuntu-24.04) (push) Has been cancelled
CI for docker images / Build docker containers (docker, ubuntu-24.04-arm) (push) Has been cancelled
CI for docker images / Build docker containers (ha-addon, ubuntu-24.04) (push) Has been cancelled
CI for docker images / Build docker containers (ha-addon, ubuntu-24.04-arm) (push) Has been cancelled
CI / Create common environment (push) Has been cancelled
CI / Check pylint (push) Has been cancelled
CI / Run script/ci-custom (push) Has been cancelled
CI / Check import esphome.__main__ time (push) Has been cancelled
CI / Run pytest (macOS-latest, 3.11) (push) Has been cancelled
CI / Run pytest (macOS-latest, 3.14) (push) Has been cancelled
CI / Run pytest (ubuntu-latest, 3.11) (push) Has been cancelled
CI / Run pytest (ubuntu-latest, 3.13) (push) Has been cancelled
CI / Run pytest (ubuntu-latest, 3.14) (push) Has been cancelled
CI / Run pytest (windows-latest, 3.11) (push) Has been cancelled
CI / Run pytest (windows-latest, 3.14) (push) Has been cancelled
CI / Determine which jobs to run (push) Has been cancelled
CI / Run integration tests (push) Has been cancelled
CI / Run C++ unit tests (push) Has been cancelled
CI / Run CodSpeed benchmarks (push) Has been cancelled
CI / Run script/clang-tidy for ESP32 IDF (push) Has been cancelled
CI / Run script/clang-tidy for ESP8266 (push) Has been cancelled
CI / Run script/clang-tidy for ZEPHYR (push) Has been cancelled
CI / Run script/clang-tidy for ESP32 Arduino (push) Has been cancelled
CI / Run script/clang-tidy for ESP32 Arduino 1/4 (push) Has been cancelled
CI / Run script/clang-tidy for ESP32 Arduino 2/4 (push) Has been cancelled
CI / Run script/clang-tidy for ESP32 Arduino 3/4 (push) Has been cancelled
CI / Run script/clang-tidy for ESP32 Arduino 4/4 (push) Has been cancelled
CI / Test components batch (${{ matrix.components }}) (push) Has been cancelled
CI / pre-commit.ci lite (push) Has been cancelled
CI / Build target branch for memory impact (push) Has been cancelled
CI / Build PR branch for memory impact (push) Has been cancelled
CI / Comment memory impact (push) Has been cancelled
CI / CI Status (push) Has been cancelled
Stale / stale (push) Has been cancelled
Lock closed issues and PRs / lock (push) Has been cancelled
Publish Release / Initialize build (push) Has been cancelled
Publish Release / Build and publish to PyPi (push) Has been cancelled
Publish Release / Build ESPHome amd64 (push) Has been cancelled
Publish Release / Build ESPHome arm64 (push) Has been cancelled
Publish Release / Publish ESPHome docker to dockerhub (push) Has been cancelled
Publish Release / Publish ESPHome docker to ghcr (push) Has been cancelled
Publish Release / Publish ESPHome ha-addon to dockerhub (push) Has been cancelled
Publish Release / Publish ESPHome ha-addon to ghcr (push) Has been cancelled
Publish Release / deploy-ha-addon-repo (push) Has been cancelled
Publish Release / deploy-esphome-schema (push) Has been cancelled
Publish Release / version-notifier (push) Has been cancelled
2026-04-29 20:35:04 +00: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
Mat931
14910e65d9
[ota] Use WatchdogManager for OTA on ESP32 ( #16138 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-04-29 20:15:21 +00:00
J. Nick Koston
813964714c
[esp32] Move HAL bodies into components/esp32/hal.cpp + inline trivial dispatches ( #16111 )
2026-04-29 20:09:08 +00:00
J. Nick Koston
5a146ab6b7
[valve] Fold ControlAction fields into a single stateless lambda ( #16123 )
2026-04-29 19:20:15 +00:00
J. Nick Koston
61a41402df
[fan] Fold TurnOnAction fields into a single stateless lambda ( #16122 )
2026-04-29 19:16:05 +00:00
Mat931
59b4cfd07c
[watchdog] Use default CHECK_IDLE_TASK and PANIC when configuring the watchdog ( #16142 )
2026-04-29 18:41:12 +00:00
J. Nick Koston
c41f38e16d
[scheduler] Add self-keyed timer API for callers without a Component ( #16127 )
2026-04-29 13:24:37 -05:00
Clyde Stubbs
0ad8a071a7
[espnow] Cleanup method visibility and naming ( #16109 )
2026-04-29 14:18:21 -04: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
GelidusResearch
ca3f7251d4
[ens160] Fix sensor initialization timing ( #16024 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-29 14:07:28 -04:00
J. Nick Koston
44cabc191d
[core] Catch body-read errors in download_content ( #16023 )
2026-04-29 14:06:41 -04:00
J. Nick Koston
e5b1991cf7
[fan] Add tests for fan.turn_on action field combinations ( #16125 )
2026-04-29 12:46:06 -05:00
J. Nick Koston
7fba57ce51
[valve] Add tests for valve.control action field combinations ( #16126 )
2026-04-29 12:45:30 -05:00
J. Nick Koston
69a33d8ac0
[core] Inline HAL clock wrappers and split hal.h into per-platform headers ( #15977 )
2026-04-29 12:31:55 -05:00
Jonathan Swoboda
ce61dcf387
[remote_base][core] Drop redundant typename in dependent type contexts ( #16137 )
2026-04-29 16:54:17 +00:00
Jonathan Swoboda
bae6b51652
[kamstrup_kmp][toshiba] Fix signed/unsigned comparisons against sizeof ( #16135 )
2026-04-29 11:33:57 -04:00
Jonathan Swoboda
557c3d4436
[aqi] Use std::max initializer-list for non-negative AQI clamp ( #16134 )
2026-04-29 11:33:29 -04:00
Jonathan Swoboda
bacee89bca
[mixer_speaker] NOLINT bugprone-unchecked-optional-access in audio_mixer_task ( #16130 )
2026-04-29 10:56:13 -04:00
Jonathan Swoboda
2157d11913
[haier] Fix bugprone-unchecked-optional-access; switch HardwareInfo to char[9] ( #16124 )
2026-04-29 14:26:53 +00:00
Jonathan Swoboda
42b8597719
[api] Extend NOLINT to cover bugprone-random-generator-seed in MAC varint test ( #16120 )
2026-04-29 13:58:19 +00:00
Jonathan Swoboda
2bd28eee9d
[tormatic] Use .value() for checked optional access in read_gate_status_ ( #16121 )
2026-04-29 09:51:31 -04:00
J. Nick Koston
0a497d3c22
[light] Fold LightControlAction fields into a single stateless lambda ( #16118 )
2026-04-29 08:35:17 -05:00
Jonathan Swoboda
79da2b9704
[time] Fix bugprone-unchecked-optional-access in CronTrigger::check_time_ ( #16107 )
2026-04-29 08:30:46 -04:00
Jonathan Swoboda
ae5b211c89
[api] Avoid JsonDocument copy-and-swap operator= in ActionResponse ctor ( #16106 )
2026-04-29 08:30:35 -04:00
J. Nick Koston
8ceada8d04
[core] Download external_files in parallel ( #16021 )
CI / Create common environment (push) Has been cancelled
CI / Check pylint (push) Has been cancelled
CI / Run script/ci-custom (push) Has been cancelled
CI / Check import esphome.__main__ time (push) Has been cancelled
CI / Run pytest (macOS-latest, 3.11) (push) Has been cancelled
CI / Run pytest (macOS-latest, 3.14) (push) Has been cancelled
CI / Run pytest (ubuntu-latest, 3.11) (push) Has been cancelled
CI / Run pytest (ubuntu-latest, 3.13) (push) Has been cancelled
CI / Run pytest (ubuntu-latest, 3.14) (push) Has been cancelled
CI / Run pytest (windows-latest, 3.11) (push) Has been cancelled
CI / Run pytest (windows-latest, 3.14) (push) Has been cancelled
CI / Determine which jobs to run (push) Has been cancelled
CI / Run integration tests (push) Has been cancelled
CI / Run C++ unit tests (push) Has been cancelled
CI / Run CodSpeed benchmarks (push) Has been cancelled
CI / Run script/clang-tidy for ESP32 IDF (push) Has been cancelled
CI / Run script/clang-tidy for ESP8266 (push) Has been cancelled
CI / Run script/clang-tidy for ZEPHYR (push) Has been cancelled
CI / Run script/clang-tidy for ESP32 Arduino (push) Has been cancelled
CI / Run script/clang-tidy for ESP32 Arduino 1/4 (push) Has been cancelled
CI / Run script/clang-tidy for ESP32 Arduino 2/4 (push) Has been cancelled
CI / Run script/clang-tidy for ESP32 Arduino 3/4 (push) Has been cancelled
CI / Run script/clang-tidy for ESP32 Arduino 4/4 (push) Has been cancelled
CI / Test components batch (${{ matrix.components }}) (push) Has been cancelled
CI / pre-commit.ci lite (push) Has been cancelled
CI / Build target branch for memory impact (push) Has been cancelled
CI / Build PR branch for memory impact (push) Has been cancelled
CI / Comment memory impact (push) Has been cancelled
CI / CI Status (push) Has been cancelled
Synchronise Device Classes from Home Assistant / Sync Device Classes (push) Has been cancelled
2026-04-29 14:32:30 +12: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
2fce71e0d4
[wifi] Add phy_mode option for ESP8266 ( #16055 )
2026-04-29 14:31:07 +12:00
J. Nick Koston
80251c54be
[climate] Add climate.control coverage to component tests via thermostat ( #16052 )
2026-04-29 14:27:56 +12:00
J. Nick Koston
0d51a122d0
[cover] Add cover.control / cover.template.publish coverage to template tests ( #16051 )
2026-04-29 14:27:40 +12:00
J. Nick Koston
5a33c50015
[light] Use constexpr template for DimRelativeAction transition_length ( #16038 )
2026-04-29 14:26:38 +12:00
J. Nick Koston
0d150dc57e
[light] Use constexpr template for ToggleAction transition_length ( #16037 )
2026-04-29 14:25:18 +12:00
J. Nick Koston
d287876d8d
[light] Use bitmask template for LightControlAction unused fields ( #16039 )
2026-04-29 14:20:37 +12:00
J. Nick Koston
592486ae9a
[analyze_memory] Attribute main.cpp setup()/loop() to esphome core ( #16033 )
2026-04-29 14:06:54 +12:00
Jonathan Swoboda
c3bd38af77
[feedback] Fix bugprone-unchecked-optional-access in start_direction_ ( #16103 )
2026-04-28 21:54:15 -04:00
J. Nick Koston
eec770d622
[core] Use ETag in external_files cache to fix re-downloads from raw.githubusercontent.com ( #16020 )
2026-04-29 13:52:09 +12:00
J. Nick Koston
d7b21a84a3
[git] Make ref fetches and submodule updates shallow ( #16014 )
2026-04-29 13:49:51 +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
35cb28edfe
[output] Gate FloatOutput power scaling fields behind USE_OUTPUT_FLOAT_POWER_SCALING ( #15998 )
2026-04-29 13:27:22 +12:00
J. Nick Koston
1363f661e6
[core] Inline ContinuationAction in If/While/RepeatAction ( #16040 )
2026-04-28 21:26:25 -04:00
J. Nick Koston
8af499b591
[api] Use custom deleter to fix incomplete-type error on macOS libc++ ( #16050 )
2026-04-28 21:26:21 -04:00