Repository navigation
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/24711
Note: Links to docs will display an error until the docs builds have been completed. ❌ 1 New Failure, 1 Unrelated FailureAs of commit 00113ca with merge base 60a8b5f ( NEW FAILURE - The following job has failed:
BROKEN TRUNK - The following job failed but were present on the merge base:👉 Rebase onto the `viable/strict` branch to avoid these failures
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
This PR needs a
|
db7697c to
ce50b41
Compare
ce50b41 to
0d5e858
Compare
0d5e858 to
ca7cfc2
Compare
ca7cfc2 to
0862497
Compare
|
@claude review effort=max |
|
Claude finished @rascani's task in 50m 59s —— View job Request Changes: this PR's own nightly run passed, but four things need another pass: the consumer's environment-variable side channel, the private Detailed reviewPR Review: #24711SummaryThis PR adds a nightly workflow that generates and packs the component once, then builds and runs every The problems are:
How this was checked:
Code Quality
Infrastructure
Testing
RecommendationRequest Changes
Specific Comments
|
0862497 to
a8383df
Compare
nightly-espressif-idf.yml runs the component across every target, ESP-IDF release and configuration that the per-PR jobs only sample. A prepare job generates and packs the component into a file:// mirror and exports the smoke, esp_nn:: mul, ESP-NN delegate and Cadence wake word models with their kernel bundles, plus an all_ops bundle that registers every op of every kernel library. Twelve build jobs (ESP-IDF 6.0.1, 6.1 and master, four shards each) take that artifact and nothing else: they list the idf_component_consumer configurations with idf-build-apps (each sdkconfig.ci.* file for ESP32, -S3, -C3, -C5, -C6 and -P4, filtered by .build-test-rules.yml), build their shard from the mirror with ESP-IDF's own Python environment, check that every setting of the configuration reached the build's sdkconfig, since ESP-IDF only warns about an unknown symbol, and run each build on QEMU or esp-emu. Each job uploads its build and emulator logs. The configurations are default, nolog (logging compiled out), perf (ExecuTorch built without -Os, and the project for speed), debug (debug assertions and full program verification), wakeword, delegate, oplib, and all_ops on ESP32-S3 and -C6 with an 8 MB flash layout, so every vendored kernel compiles under ESP-IDF's flags and every registration resolves when the image links; plus a build-only ESP32-P4 configuration for silicon before rev3, which esp-emu does not run. The consumer takes the model directory as ET_CONSUMER_MODELS_DIR, from which CONFIG_ET_CONSUMER_MODEL picks the .pte and bundle. It has its own sdkconfig.defaults instead of overriding SDKCONFIG_DEFAULTS. The script builds each listed configuration itself with its own sdkconfig, because idf-build-apps keeps one sdkconfig in the project directory, which the next build overwrites before the emulator run needs it, and runs idf-build-apps from a venv of its own so ESP-IDF's environment stays as ESP-IDF installs it. Jobs on macOS and Windows configure the two-model idf_component_smoke project with the prepared component, once with its bundle and once in automatic mode, and check that both select the same kernels. The registry validation (compote component upload --dry-run --allow-existing) runs here on the packed archive. setup.sh accepts an ESP-IDF branch such as master. The workflow also runs for the ciflow/nightly label and on pull requests that change what it runs, since workflow_dispatch only works from the default branch. Authored with Claude Code.
a8383df to
00113ca
Compare
nightly-espressif-idf.yml runs the component across every target, ESP-IDF
release and configuration that the per-PR jobs only sample. A prepare job
generates and packs the component into a file:// mirror and exports the
smoke, esp_nn:: mul, ESP-NN delegate and Cadence wake word models with
their kernel bundles, plus an all_ops bundle that registers every op of
every kernel library. Twelve build jobs (ESP-IDF 6.0.1, 6.1 and master,
four shards each) take that artifact and nothing else: they list the
idf_component_consumer configurations with idf-build-apps (each
sdkconfig.ci.* file for ESP32, -S3, -C3, -C5, -C6 and -P4, filtered by
.build-test-rules.yml), build their shard from the mirror with ESP-IDF's
own Python environment, check that every setting of the configuration
reached the build's sdkconfig, since ESP-IDF only warns about an unknown
symbol, and run each build on QEMU or esp-emu. Each job uploads its build
and emulator logs. The configurations are default, nolog (logging
compiled out), perf (ExecuTorch built without -Os, and the project for
speed), debug (debug assertions and full program verification),
wakeword, delegate, oplib, and all_ops on ESP32-S3 and -C6 with an 8 MB
flash layout, so every vendored kernel compiles under ESP-IDF's flags and
every registration resolves when the image links; plus a build-only
ESP32-P4 configuration for silicon before rev3, which esp-emu does not
run.
The consumer takes the model directory as ET_CONSUMER_MODELS_DIR, from
which CONFIG_ET_CONSUMER_MODEL picks the .pte and bundle. It has its own
sdkconfig.defaults instead of overriding SDKCONFIG_DEFAULTS. The script
builds each listed configuration itself with its own sdkconfig, because
idf-build-apps keeps one sdkconfig in the project directory, which the
next build overwrites before the emulator run needs it, and runs
idf-build-apps from a venv of its own so ESP-IDF's environment stays as
ESP-IDF installs it.
Jobs on macOS and Windows configure the two-model idf_component_smoke
project with the prepared component, once with its bundle and once in
automatic mode, and check that both select the same kernels. The
registry validation (compote component upload --dry-run --allow-existing)
runs here on the packed archive. setup.sh accepts an ESP-IDF branch such
as master. The workflow also runs for the ciflow/nightly label and on
pull requests that change what it runs, since workflow_dispatch only
works from the default branch.
Authored with Claude Code.