-
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 warning
s 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
- 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
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.yml
file (e.g.,usb_host_lib
).
Description
This MR runs IDF examples with all the components overriden.
Right now, only
usb
andesp_tinyusb
Components 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.py
esp-usb
are usedcherryUSB
examples are excludedusb_host_lib
as it does not contain anyidf_component.yml
is treated differently. First aidf_component.yml
is created by the python script and then, theusb
component 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-apps
to2.12.2
, disablefail-fast
, and export stricter compiler flags with Werror..github/ci/override_managed_component.py
):esp_tinyusb
,usb
, and all class drivers; excludeCherryUSB
examples.main/idf_component.yml
forusb_host_lib
when 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.