-
Notifications
You must be signed in to change notification settings - Fork 34
feat(ci): Build idf examples with overriden class driver components #265
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
feat(ci): Build idf examples with overriden class driver components #265
Conversation
|
The same build error as from esp-idf here, CI Job failed correctly. |
3f82051 to
4428739
Compare
| pip install idf-component-manager>=2.1.2 idf-build-apps==2.4.3 pyyaml --upgrade | ||
| - name: Build ESP-IDF ${{ matrix.idf_ver }} USB examples | ||
| shell: bash | ||
| pip install idf-component-manager>=2.1.2 idf-build-apps==2.12.2 pyyaml --upgrade |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To be able to threat the sdkconfig warning as an CI Build error, this one which recently broke the esp-idf CI:
Loading defaults file /opt/esp/idf/examples/peripherals/usb/host/uvc/sdkconfig.defaults...
warning: unknown kconfig symbol 'PRINTF_UVC_CONFIGURATION_DESCRIPTOR' assigned to 'y' in /opt/esp/idf/examples/peripherals/usb/host/uvc/sdkconfig.defaults
Loading defaults file /opt/esp/idf/examples/peripherals/usb/host/uvc/sdkconfig.defaults.esp32p4...
warning: unknown kconfig symbol 'PRINTF_UVC_CONFIGURATION_DESCRIPTOR' assigned to 'y' in /opt/esp/idf/examples/peripherals/usb/host/uvc/sdkconfig.defaults.esp32p4
I updated the idf-build-apps to the current latest version. It, by default, contains a post-build action, which treats any warnings which occurred during build (and even before build) as a CI Build error. The same setup is present in esp-idf build CI.
Otherwise, without updating the idf-build-apps to the latest version, the build would have normally passed in our CI.
5df8257 to
6188f04
Compare
230b2f8 to
cc13fa5
Compare
fc6bcde to
aa22194
Compare
aa22194 to
6c311ee
Compare
6c311ee to
19d38c1
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@peter-marcisovsky Thank you for the work on this.
The original purpose of override_managed_component.py was to enable testing of examples or tests for components that are located outside their original repositories. The intent was for the script to remain reusable across different repositories facing similar constraints.
The proposed changes introduce behavior that is specific to the esp-usb repository. We should clarify whether we want to:
-
Redefine the scope of this script to be esp-usb-specific, or
-
Improve its design to keep it reusable.
If we choose the second option, possible improvements include:
-
Invoking the script once for each overridden class driver, avoiding assumptions about component names derived from paths.
-
Removing special-case handling for components that already contain an
idf_component.ymlfile (e.g.,usb_host_lib).
|
Thanks for the review. It would make more sense to keep the I will modify it in a way, so the script would override each component separately. |
- all component used in usb device and host examples are overridden
- esp_tinyusb, usb and all class drivers
- using ignore_build_warnings.txt from esp-idf to match the idf CI environment
19d38c1 to
0e3ca04
Compare
Description
This MR runs IDF examples with all the components overriden.
Right now, only
usbandesp_tinyusbComponents are overriden in IDF examples, but class dirivers are still used from esp registry.This would prevent us from breaking esp-idf CI before releasing any new component
Changes
Changes in the
override_managed_component.pyesp-usbare usedcherryUSBexamples are excludedusb_host_libas it does not contain anyidf_component.ymlis treated differently. First aidf_component.ymlis created by the python script and then, theusbcomponent is used as overridden.Related
Checklist
Before submitting a Pull Request, please ensure the following:
Note
Enable overriding USB host class drivers in IDF examples CI, upgrade workflow tooling/flags, and enhance the override script with manifest handling and exclusions.
.github/workflows/build_idf_examples.yml):host/class) for all releases; override coreusb(host/usb) only on maintenance releases (v5.4, v5.5, latest).EXAMPLES_PATH, upgradeidf-build-appsto2.12.2, disablefail-fast, and export stricter compiler flags with Werror..github/ci/override_managed_component.py):esp_tinyusb,usb, and all class drivers; excludeCherryUSBexamples.main/idf_component.ymlforusb_host_libwhen missing; improve app discovery and namespacing.cdc_acm_vcp; add robust error handling, logging, and YAML IO..github/ci/.idf_build_examples_config.toml):ignore_warning_files(use IDF'stools/ci/ignore_build_warnings.txt); removework_dir..github/ci/.idf-build-examples-rules.yml):IDF_VERSION >= 5.5.Written by Cursor Bugbot for commit aa22194. This will update automatically on new commits. Configure here.