############
# Patterns #
############

# build system, if changed, build all apps
.patterns-build_system: &patterns-build_system
  # For test
  # - "tools/build_apps.py"
  - "conftest.py"
  - "pytest.ini"

# components folder, in the alphabetic order
.patterns-components_audio_adc_mic: &patterns-components_audio_adc_mic
  - "components/audio/adc_mic/**/*"

.patterns-components_audio_dac_audio: &patterns-components_audio_dac_audio
  - "components/audio/dac_audio/**/*"

.patterns-components_audio_pwm_audio: &patterns-components_audio_pwm_audio
  - "components/audio/pwm_audio/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_avi_player: &patterns-components_avi_player
  - "components/avi_player/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_bluetooth_ble_conn_mgr: &patterns-components_bluetooth_ble_conn_mgr
  - "components/bluetooth/ble_conn_mgr/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_bluetooth_ble_profiles_std_ble_anp: &patterns-components_bluetooth_ble_profiles_std_ble_anp
  - "components/bluetooth/ble_profiles/std/ble_anp/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_bluetooth_ble_profiles_std_ble_hrp: &patterns-components_bluetooth_ble_profiles_std_ble_hrp
  - "components/bluetooth/ble_profiles/std/ble_hrp/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_bluetooth_ble_profiles_std_ble_htp: &patterns-components_bluetooth_ble_profiles_std_ble_htp
  - "components/bluetooth/ble_profiles/std/ble_htp/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_bluetooth_ble_profiles_esp_ble_ota: &patterns-components_bluetooth_ble_profiles_esp_ble_ota
  - "components/bluetooth/ble_profiles/esp/ble_ota/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_bluetooth_ble_services: &patterns-components_bluetooth_ble_services
  - "components/bluetooth/ble_services/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_bluetooth_ble_hci: &patterns-components_bluetooth_ble_hci
  - "components/bluetooth/ble_hci/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_bootloader_support_plus: &patterns-components_bootloader_support_plus
  - "components/bootloader_support_plus/**/*"
  - "components/utilities/xz/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_bus: &patterns-components_bus
  - "components/bus/**/*"

.patterns-components_button: &patterns-components_button
  - "components/button/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_display_digital_tube_ch450: &patterns-components_display_digital_tube_ch450
  - "components/display/digital_tube/ch450/**/*"

.patterns-components_display_digital_tube_ht16c21: &patterns-components_display_digital_tube_ht16c21
  - "components/display/digital_tube/ht16c21/**/*"

.patterns-components_display_digital_tube_is31fl3xxx: &patterns-components_display_digital_tube_is31fl3xxx
  - "components/display/digital_tube/is31fl3xxx/**/*"

.patterns-components_display_lcd_esp_lcd_axs15231b: &patterns-components_display_lcd_esp_lcd_axs15231b
  - "components/display/lcd/esp_lcd_axs15231b/**/*"

.patterns-components_display_lcd_esp_lcd_ek79007: &patterns-components_display_lcd_esp_lcd_ek79007
  - "components/display/lcd/esp_lcd_ek79007/**/*"

.patterns-components_display_lcd_esp_lcd_jd9165: &patterns-components_display_lcd_esp_lcd_jd9165
  - "components/display/lcd/esp_lcd_jd9165/**/*"

.patterns-components_display_lcd_esp_lcd_jd9365: &patterns-components_display_lcd_esp_lcd_jd9365
  - "components/display/lcd/esp_lcd_jd9365/**/*"

.patterns-components_display_lcd_esp_lcd_gc9b71: &patterns-components_display_lcd_esp_lcd_gc9b71
  - "components/display/lcd/esp_lcd_gc9b71/**/*"

.patterns-components_display_lcd_esp_lcd_hx8399: &patterns-components_display_lcd_esp_lcd_hx8399
  - "components/display/lcd/esp_lcd_hx8399/**/*"

.patterns-components_display_lcd_esp_lcd_panel_io_additions: &patterns-components_display_lcd_esp_lcd_panel_io_additions
  - "components/display/lcd/esp_lcd_panel_io_additions/**/*"

.patterns-components_display_lcd_esp_lcd_nv3022b: &patterns-components_display_lcd_esp_lcd_nv3022b
  - "components/display/lcd/esp_lcd_nv3022b/**/*"

.patterns-components_display_lcd_esp_lcd_sh8601: &patterns-components_display_lcd_esp_lcd_sh8601
  - "components/display/lcd/esp_lcd_sh8601/**/*"

.patterns-components_display_lcd_esp_lcd_spd2010: &patterns-components_display_lcd_esp_lcd_spd2010
  - "components/display/lcd/esp_lcd_spd2010/**/*"

.patterns-components_display_lcd_esp_lcd_st7701: &patterns-components_display_lcd_esp_lcd_st7701
  - "components/display/lcd/esp_lcd_st7701/**/*"

.patterns-components_display_lcd_esp_lcd_st7703: &patterns-components_display_lcd_esp_lcd_st7703
  - "components/display/lcd/esp_lcd_st7703/**/*"

.patterns-components_display_lcd_esp_lcd_st77903_qspi: &patterns-components_display_lcd_esp_lcd_st77903_qspi
  - "components/display/lcd/esp_lcd_st77903_qspi/**/*"

.patterns-components_display_lcd_esp_lcd_st77903_rgb: &patterns-components_display_lcd_esp_lcd_st77903_rgb
  - "components/display/lcd/esp_lcd_st77903_rgb/**/*"

.patterns-components_display_lcd_esp_lcd_st77916: &patterns-components_display_lcd_esp_lcd_st77916
  - "components/display/lcd/esp_lcd_st77916/**/*"

.patterns-components_display_lcd_esp_lcd_st77922: &patterns-components_display_lcd_esp_lcd_st77922
  - "components/display/lcd/esp_lcd_st77922/**/*"

.patterns-components_display_lcd_esp_lcd_usb_display: &patterns-components_display_lcd_esp_lcd_usb_display
  - "components/display/lcd/esp_lcd_usb_display/**/*"

.patterns-components_display_lcd_touch_esp_lcd_touch_ili2118: &patterns-components_display_lcd_touch_esp_lcd_touch_ili2118
  - "components/display/lcd_touch/esp_lcd_touch_ili2118/**/*"

.patterns-components_display_lcd_touch_esp_lcd_touch_spd2010: &patterns-components_display_lcd_touch_esp_lcd_touch_spd2010
  - "components/display/lcd_touch/esp_lcd_touch_spd2010/**/*"

.patterns-components_display_lcd_touch_esp_lcd_touch_st7123: &patterns-components_display_lcd_touch_esp_lcd_touch_st7123
  - "components/display/lcd_touch/esp_lcd_touch_st7123/**/*"

.patterns-components_display_screen: &patterns-components_display_screen
  - "components/display/screen/**/*"

.patterns-components_display_tools_esp_lv_decoder: &patterns-components_display_tools_esp_lv_decoder
  - "components/display/tools/esp_lv_decoder/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_display_tools_esp_lv_fs: &patterns-components_display_tools_esp_lv_fs
  - "components/display/tools/esp_lv_fs/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_display_tools_esp_mmap_assets: &patterns-components_display_tools_esp_mmap_assets
  - "components/display/tools/esp_mmap_assets/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_display_touch_panel: &patterns-components_display_touch_panel
  - "components/display/touch_panel/**/*"

.patterns-components_keyboard_button: &patterns-components_keyboard_button
  - "components/keyboard_button/**/*"

.patterns-components_expander_io_expander_mcp23017: &patterns-components_expander_io_expander_mcp23017
  - "components/expander/io_expander/mcp23017/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_extended_vfs: &patterns-components_extended_vfs
  - "components/extended_vfs/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_gui_lvgl_gui: &patterns-components_gui_lvgl_gui
  - "components/gui/lvgl_gui/**/*"

.patterns-components_ir_ir_learn: &patterns-components_ir_ir_learn
  - "components/ir/ir_learn/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_knob: &patterns-components_knob
  - "components/knob/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_led_led_indicator: &patterns-components_led_led_indicator
  - "components/led/led_indicator/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_led_light: &patterns-components_led_light
  - "components/led/light/**/*"

.patterns-components_led_lightbulb_driver: &patterns-components_led_lightbulb_driver
  - "components/led/lightbulb_driver/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_motor_drv10987: &patterns-components_motor_drv10987
  - "components/motor/drv10987/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_motor_esp_simplefoc: &patterns-components_motor_esp_simplefoc
  - "components/motor/esp_simplefoc/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_motor_esp_sensorless_bldc_control: &patterns-components_motor_esp_sensorless_bldc_control
  - "components/motor/esp_sensorless_bldc_control/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_motor_servo: &patterns-components_motor_servo
  - "components/motor/servo/**/*"
  - "components/tools/cmake_utilities/package_manager.cmake"

.patterns-components_openai: &patterns-components_openai
  - "components/openai/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_sensors_power_measure: &patterns-components_sensors_power_measure
  - "components/sensors/power_measure/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_sensors_adc_mcp3201: &patterns-components_sensors_adc_mcp3201
  - "components/sensors/adc/mcp3201/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_sensors_battery_fuel_gauge_adc_battery_estimation: &patterns-components_sensors_battery_fuel_gauge_adc_battery_estimation
  - "components/sensors/battery_fuel_gauge/adc_battery_estimation/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_sensors_battery_fuel_gauge_max17048: &patterns-components_sensors_battery_fuel_gauge_max17048
  - "components/sensors/battery_fuel_gauge/max17048/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_sensors_gesture_apds9960: &patterns-components_sensors_gesture_apds9960
  - "components/sensors/gesture/apds9960/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_sensors_humiture_aht20: &patterns-components_sensors_humiture_aht20
  - "components/sensors/humiture/aht20/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_sensors_humiture_hdc2010: &patterns-components_sensors_humiture_hdc2010
  - "components/sensors/humiture/hdc2010/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_sensors_humiture_hts221: &patterns-components_sensors_humiture_hts221
  - "components/sensors/gesture/hts221/**/*"

.patterns-components_sensors_humiture_mvh3004d: &patterns-components_sensors_humiture_mvh3004d
  - "components/sensors/humiture/mvh3004d/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_sensors_humiture_sht3x: &patterns-components_sensors_humiture_sht3x
  - "components/sensors/humiture/sht3x/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_sensors_imu_lis2dh12: &patterns-components_sensors_imu_lis2dh12
  - "components/sensors/imu/lis2dh12/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_sensors_imu_mpu6050: &patterns-components_sensors_imu_mpu6050
  - "components/sensors/imu/mpu6050/**/*"

.patterns-components_sensors_light_sensor_bh1750: &patterns-components_sensors_light_sensor_bh1750
  - "components/sensors/light_sensor/bh1750/**/*"

.patterns-components_sensors_light_sensor_veml6040: &patterns-components_sensors_light_sensor_veml6040
  - "components/sensors/light_sensor/veml6040/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_sensors_light_sensor_veml6075: &patterns-components_sensors_light_sensor_veml6075
  - "components/sensors/light_sensor/veml6075/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_sensors_pressure_bme280: &patterns-components_sensors_pressure_bme280
  - "components/sensors/pressure/bme280/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_sensors_radar_at581x: &patterns-components_sensors_radar_at581x
  - "components/sensors/radar/at581x/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_sensors_sensor_hub: &patterns-components_sensors_sensor_hub
  - "components/sensors/sensor_hub/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_spi_bus: &patterns-components_spi_bus
  - "components/spi_bus/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_storage_eeprom_at24c02: &patterns-components_storage_eeprom_at24c02
  - "components/storage/eeprom/at24c02/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_tools_cmake_utilities_test_component1: &patterns-components_tools_cmake_utilities_test_component1
  - "tools/cmake_utilities/test_apps/components/test_component1/**/*"

.patterns-components_tools_cmake_utilities_test_component2: &patterns-components_tools_cmake_utilities_test_component2
  - "tools/cmake_utilities/test_apps/components/TEST-component2/**/*"

.patterns-components_touch_touch_proximity_sensor: &patterns-components_touch_touch_proximity_sensor
  - "components/touch/touch_proximity_sensor/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_touch_touch_button: &patterns-components_touch_touch_button
  - "components/touch/touch_button/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_touch_touch_button_sensor: &patterns-components_touch_touch_button_sensor
  - "components/touch/touch_button_sensor/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_touch_touch_slider_sensor: &patterns-components_touch_touch_slider_sensor
  - "components/touch/touch_slider_sensor/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_usb_esp_msc_ota: &patterns-components_usb_esp_msc_ota
  - "components/usb/esp_msc_ota/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_usb_iot_usbh: &patterns-components_usb_iot_usbh
  - "components/usb/iot_usbh/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_usb_iot_usbh_cdc: &patterns-components_usb_iot_usbh_cdc
  - "components/usb/iot_usbh_cdc/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_usb_iot_usbh_modem: &patterns-components_usb_iot_usbh_modem
  - "components/usb/iot_usbh_modem/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_usb_iot_usbh_ecm: &patterns-components_usb_iot_usbh_ecm
  - "components/usb/iot_usbh_ecm/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_usb_usb_host_rndis_test_apps: &patterns-components_usb_usb_host_rndis_test_apps
  - "components/usb/usb_host_rndis/test_apps/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_usb_usb_device_uac: &patterns-components_usb_usb_device_uac
  - "components/usb/usb_device_uac/**/*"

.patterns-components_usb_usb_device_uvc: &patterns-components_usb_usb_device_uvc
  - "components/usb/usb_device_uvc/**/*"

.patterns-components_usb_iot_usbh_rndis: &patterns-components_usb_iot_usbh_rndis
  - "components/usb/iot_usbh_rndis/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_usb_usb_stream: &patterns-components_usb_usb_stream
  - "components/usb/usb_stream/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_usb_esp_tinyuf2: &patterns-components_usb_esp_tinyuf2
  - "components/usb/esp_tinyuf2/**/*"

.patterns-components_utilities_xz: &patterns-components_utilities_xz
  - "components/utilities/xz/**/*"

.patterns-components_zero_detection: &patterns-components_zero_detection
  - "components/zero_detection/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_ntc_driver: &patterns-components_ntc_driver
  - "components/sensors/ntc_driver/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_i2c_bus: &patterns-components_i2c_bus
  - "components/i2c_bus/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_iot_eth: &patterns-components_iot_eth
  - "components/iot_eth/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_sensors_power_monitor_ina236: &patterns-components_sensors_power_monitor_ina236
  - "components/sensors/power_monitor/ina236/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

.patterns-components_utilities_adc_tp_calibration: &patterns-components_utilities_adc_tp_calibration
  - "components/utilities/adc_tp_calibration/**/*"
  - "tools/cmake_utilities/package_manager.cmake"

# examples folder, in the alphabetic order
.patterns-docs: &patterns-docs
  - "docs/**/*"

.patterns-docs_md: &patterns-docs_md
  - "**/*.md"

.patterns-docs_inc: &patterns-docs_inc

  - "components/audio/dac_audio/include/dac_audio.h"
  - "components/audio/pwm_audio/include/pwm_audio.h"
  - "components/avi_player/include/avi_player.h"
  - "components/bluetooth/ble_conn_mgr/include/esp_ble_conn_mgr.h"
  - "components/bluetooth/ble_conn_mgr/include/esp_ble_conn_mgr.h"
  - "components/bluetooth/ble_hci/include/ble_hci.h"
  - "components/bluetooth/ble_services/ans/include/esp_ans.h"
  - "components/bluetooth/ble_services/bas/include/esp_bas.h"
  - "components/bluetooth/ble_services/bcs/include/esp_bcs.h"
  - "components/bluetooth/ble_services/dis/include/esp_dis.h"
  - "components/bluetooth/ble_services/hrs/include/esp_hrs.h"
  - "components/bluetooth/ble_services/hts/include/esp_hts.h"
  - "components/bluetooth/ble_services/tps/include/esp_tps.h"
  - "components/button/include/iot_button.h"
  - "components/display/screen/interface_driver/scr_interface_driver.h"
  - "components/display/screen/screen_driver.h"
  - "components/display/tools/esp_lv_decoder/include/esp_lv_decoder.h"
  - "components/display/tools/esp_lv_fs/include/esp_lv_fs.h"
  - "components/display/tools/esp_mmap_assets/include/esp_mmap_assets.h"
  - "components/display/touch_panel/touch_panel.h"
  - "components/i2c_bus/include/i2c_bus.h"
  - "components/ir/ir_learn/include/ir_learn.h"
  - "components/keyboard_button/include/keyboard_button.h"
  - "components/knob/include/iot_knob.h"
  - "components/led/led_indicator/include/led_indicator.h"
  - "components/motor/esp_sensorless_bldc_control/control/include/bldc_control.h"
  - "components/motor/esp_sensorless_bldc_control/control/include/bldc_control_param.h"
  - "components/motor/esp_sensorless_bldc_control/user_cfg/bldc_user_cfg.h"
  - "components/motor/servo/include/iot_servo.h"
  - "components/openai/include/OpenAI.h"
  - "components/sensors/ntc_driver/include/ntc_driver.h"
  - "components/sensors/power_monitor/ina236/include/ina236.h"
  - "components/sensors/sensor_hub/include/hal/humiture_hal.h"
  - "components/sensors/sensor_hub/include/hal/imu_hal.h"
  - "components/sensors/sensor_hub/include/hal/light_sensor_hal.h"
  - "components/sensors/sensor_hub/include/iot_sensor_hub.h"
  - "components/sensors/sensor_hub/include/sensor_type.h"
  - "components/spi_bus/include/spi_bus.h"
  - "components/touch/touch_proximity_sensor/include/touch_proximity_sensor.h"
  - "components/usb/esp_msc_ota/include/esp_msc_ota.h"
  - "components/usb/esp_tinyuf2/esp_tinyuf2.h"
  - "components/usb/iot_usbh_cdc/include/iot_usbh_cdc.h"
  - "components/usb/iot_usbh_ecm/include/iot_usbh_ecm.h"
  - "components/usb/iot_usbh_rndis/include/iot_usbh_rndis.h"
  - "components/usb/usb_device_uac/include/usb_device_uac.h"
  - "components/usb/usb_device_uvc/include/usb_device_uvc.h"
  - "components/usb/usb_stream/include/usb_stream.h"
  - "components/utilities/adc_tp_calibration/include/adc_tp_calibration.h"
  - "components/zero_detection/include/zero_detection.h"
# examples folder, in the alphabetic order
.patterns-example_ai_esp_dl_human_activity_recognition: &patterns-example_ai_esp_dl_human_activity_recognition
  - "examples/ai/esp_dl/human_activity_recognition/**/*"

.patterns-example_ai_esp_dl_touchpad_digit_recognition: &patterns-example_ai_esp_dl_touchpad_digit_recognition
  - "examples/ai/esp_dl/touchpad_digit_recognition/**/*"

.patterns-example_audio_wav_player: &patterns-example_audio_wav_player
  - "examples/audio/**/*"

.patterns-example_bluetooth_ble_conn_mgr: &patterns-example_bluetooth_ble_conn_mgr
  - "examples/bluetooth/ble_conn_mgr/**/*"

.patterns-example_bluetooth_ble_anp: &patterns-example_bluetooth_ble_anp
  - "examples/bluetooth/ble_anp/**/*"

.patterns-example_bluetooth_ble_hrp: &patterns-example_bluetooth_ble_hrp
  - "examples/bluetooth/ble_hrp/**/*"

.patterns-example_bluetooth_ble_htp: &patterns-example_bluetooth_ble_htp
  - "examples/bluetooth/ble_htp/**/*"

.patterns-example_bluetooth_ble_ota: &patterns-example_bluetooth_ble_ota
  - "examples/bluetooth/ble_ota/**/*"

.patterns-example_bluetooth_ble_services: &patterns-example_bluetooth_ble_services
  - "examples/bluetooth/ble_services/**/*"

.patterns-example_bluetooth_ble_remote_control: &patterns-example_bluetooth_ble_remote_control
  - "examples/bluetooth/ble_remote_control/**/*"

.patterns-example_camera_basic: &patterns-example_camera_basic
  - "examples/camera/basic/**/*"

.patterns-example_camera_pic_server: &patterns-example_camera_pic_server
  - "examples/camera/pic_server/**/*"

.patterns-example_camera_test_framerate: &patterns-example_camera_test_framerate
  - "examples/camera/test_framerate/**/*"

.patterns-example_camera_video_recorder: &patterns-example_camera_video_recorder
  - "examples/camera/video_recorder/**/*"

.patterns-example_camera_video_stream_server: &patterns-example_camera_video_stream_server
  - "examples/camera/video_stream_server/**/*"

.patterns-example_check_pedestrian_flow: &patterns-example_check_pedestrian_flow
  - "examples/check_pedestrian_flow/**/*"

.patterns-example_common_components_boards: &patterns-example_common_components_boards
  - "examples/common_components/boards/**/*"

.patterns-example_common_components_camera: &patterns-example_common_components_camera
  - "examples/common_components/camera/**/*"

.patterns-example_display_lcd_lcd_layer_blending: &patterns-example_display_lcd_lcd_layer_blending
  - "examples/display/lcd/lcd_layer_blending/**/*"

.patterns-example_display_lcd_lcd_with_te: &patterns-example_display_lcd_lcd_with_te
  - "examples/display/lcd/lcd_with_te/**/*"

.patterns-example_display_lcd_mipi_dsi_avoid_tearing: &patterns-example_display_lcd_mipi_dsi_avoid_tearing
  - "examples/display/lcd/mipi_dsi_avoid_tearing/**/*"

.patterns-example_display_lcd_qspi_with_ram: &patterns-example_display_lcd_qspi_with_ram
  - "examples/display/lcd/qspi_with_ram/**/*"

.patterns-example_display_lcd_qspi_without_ram: &patterns-example_display_lcd_qspi_without_ram
  - "examples/display/lcd/qspi_without_ram/**/*"

.patterns-example_display_lcd_rgb_lcd_8bit: &patterns-example_display_lcd_rgb_lcd_8bit
  - "examples/display/lcd/rgb_lcd_8bit/**/*"

.patterns-example_display_lcd_rgb_avoid_tearing: &patterns-example_display_lcd_rgb_avoid_tearing
  - "examples/display/lcd/rgb_avoid_tearing/**/*"

.patterns-example_extended_vfs_gpio_gpio_simple: &patterns-example_extended_vfs_gpio_gpio_simple
  - "examples/extended_vfs/gpio/gpio_simple/**/*"

.patterns-example_extended_vfs_i2c_i2c_bh1750: &patterns-example_extended_vfs_i2c_i2c_bh1750
  - "examples/extended_vfs/i2c/i2c_hb1750/**/*"

.patterns-example_extended_vfs_i2c_i2c_tt21100: &patterns-example_extended_vfs_i2c_i2c_tt21100
  - "examples/extended_vfs/i2c/i2c_tt21100/**/*"

.patterns-example_extended_vfs_ledc_ledc_simple: &patterns-example_extended_vfs_ledc_ledc_simple
  - "examples/extended_vfs/ledc/ledc_simple/**/*"

.patterns-example_extended_vfs_spi_spi_master_simple: &patterns-example_extended_vfs_spi_spi_master_simple
  - "examples/extended_vfs/spi/spi_master_simple/**/*"

.patterns-example_extended_vfs_spi_spi_slave_simple: &patterns-example_extended_vfs_spi_spi_slave_simple
  - "examples/extended_vfs/spi/spi_slave_simple/**/*"

.patterns-example_get_started_blink: &patterns-example_get_started_blink
  - "examples/get-started/blink/**/*"

.patterns-example_get_started_button_power_save: &patterns-example_get_started_button_power_save
  - "examples/get-started/button_power_save/**/*"

.patterns-example_get_started_knob_power_save: &patterns-example_get_started_knob_power_save
  - "examples/get-started/knob_power_save/**/*"

.patterns-example_indicator: &patterns-example_indicator
  - "examples/indicator/**/*"

.patterns-example_keyboard: &patterns-example_keyboard
  - "examples/keyboard/**/*"

.patterns-example_lighting_lightbulb: &patterns-example_lighting_lightbulb
  - "examples/lighting/lightbulb/**/*"

.patterns-example_lvgl_freetype: &patterns-example_lvgl_freetype
  - "examples/hmi/lvgl_freetype/**/*"

.patterns-example_motor_bldc_fan_rainmaker: &patterns-example_motor_bldc_fan_rainmaker
  - "examples/motor/bldc_fan_rainmaker/**/*"

.patterns-example_motor_drv10987: &patterns-example_motor_drv10987
  - "examples/motor/drv10987/**/*"

.patterns-example_motor_foc_openloop_control: &patterns-example_motor_foc_openloop_control
  - "examples/motor/foc_openloop_control/**/*"

.patterns-example_motor_foc_velocity_control: &patterns-example_motor_foc_velocity_control
  - "examples/motor/foc_velocity_control/**/*"

.patterns-example_motor_foc_knob: &patterns-example_motor_foc_knob
  - "examples/motor/foc_knob_example/**/*"

.patterns-example_motor_servo_control: &patterns-example_motor_servo_control
  - "examples/motor/servo_control/**/*"

.patterns-example_ota_simple_ota_example: &patterns-example_ota_simple_ota_example
  - "examples/ota/simple_ota_example/**/*"

.patterns-example_perf_benchmark: &patterns-example_perf_benchmark
  - "examples/hmi/perf_benchmark/**/*"

.patterns-example_screen: &patterns-example_screen
  - "examples/screen/**/*"

.patterns-example_sensors_sensor_control_led: &patterns-example_sensors_sensor_control_led
  - "examples/sensors/sensor_control_led/**/*"

.patterns-example_sensors_sensor_hub_monitor: &patterns-example_sensors_sensor_hub_monitor
  - "examples/sensors/sensor_hub_monitor/**/*"

.patterns-example_usb_device_bootloader_uf2: &patterns-example_usb_device_bootloader_uf2
  - "examples/usb/device/bootloader_uf2/**/*"

.patterns-example_usb_device_usb_dongle: &patterns-example_usb_device_usb_dongle
  - "examples/usb/device/usb_dongle/**/*"

.patterns-example_touch_touch_button: &patterns-example_touch_touch_button
  - "examples/touch/touch_button_sensor/**/*"

.patterns-example_touch_touch_proximity: &patterns-example_touch_touch_proximity
  - "examples/touch/touch_proximity/**/*"

.patterns-example_touch_touch_slider: &patterns-example_touch_touch_slider
  - "examples/touch/touch_slider_sensor/**/*"

.patterns-example_ulp_lp_cpu_lp_environment_sensor: &patterns-example_ulp_lp_cpu_lp_environment_sensor
  - "examples/ulp/lp_cpu/lp_environment_sensor/**/*"

.patterns-example_sensors_ntc_temperature_sensor: &patterns-example_sensors_ntc_temperature_sensor
  - "examples/sensors/ntc_temperature_sensor/**/*"

.patterns-example_sensors_power_measure: &patterns-example_sensors_power_measure
  - "examples/sensors/power_measure/**/*"

.patterns-example_usb_device_usb_uart_bridge: &patterns-example_usb_device_usb_uart_bridge
  - "examples/usb/device/usb_uart_bridge/**/*"

.patterns-example_usb_device_usb_uac: &patterns-example_usb_device_usb_uac
  - "examples/usb/device/usb_uac/**/*"

.patterns-example_usb_device_usb_dual_uvc_device: &patterns-example_usb_device_usb_dual_uvc_device
  - "examples/usb/device/usb_dual_uvc_device/**/*"

.patterns-example_usb_device_usb_extend_screen: &patterns-example_usb_device_usb_extend_screen
  - "examples/usb/device/usb_extend_screen/**/*"

.patterns-example_usb_device_usb_webcam: &patterns-example_usb_device_usb_webcam
  - "examples/usb/device/usb_webcam/**/*"

.patterns-example_usb_device_usb_hid_device: &patterns-example_usb_device_usb_hid_device
  - "examples/usb/device/usb_hid_device/**/*"

.patterns-example_usb_device_usb_lcd_display: &patterns-example_usb_device_usb_lcd_display
  - "examples/usb/device/usb_lcd_display/**/*"

.patterns-example_usb_device_usb_msc_wireless_disk: &patterns-example_usb_device_usb_msc_wireless_disk
  - "examples/usb/device/usb_msc_wireless_disk/**/*"

.patterns-example_usb_device_usb_surface_dial: &patterns-example_usb_device_usb_surface_dial
  - "examples/usb/device/usb_surface_dial/**/*"

.patterns-example_usb_device_usb_uf2_nvs: &patterns-example_usb_device_usb_uf2_nvs
  - "examples/usb/device/usb_uf2_nvs/**/*"

.patterns-example_usb_device_usb_uf2_ota: &patterns-example_usb_device_usb_uf2_ota
  - "examples/usb/device/usb_uf2_ota/**/*"

.patterns-example_usb_host_usb_camera_lcd_display: &patterns-example_usb_host_usb_camera_lcd_display
  - "examples/usb/host/usb_camera_lcd_display/**/*"

.patterns-example_usb_host_usb_camera_mic_spk: &patterns-example_usb_host_usb_camera_mic_spk
  - "examples/usb/host/usb_camera_mic_spk/**/*"

.patterns-example_usb_host_usb_audio_player: &patterns-example_usb_host_usb_audio_player
  - "examples/usb/host/usb_audio_player/**/*"

.patterns-example_usb_host_usb_cdc_4g_module: &patterns-example_usb_host_usb_cdc_4g_module
  - "examples/usb/host/usb_cdc_4g_module/**/*"

.patterns-example_usb_host_usb_cdc_basic: &patterns-example_usb_host_usb_cdc_basic
  - "examples/usb/host/usb_cdc_basic/**/*"

.patterns-example_usb_host_usb_hub_dual_camera: &patterns-example_usb_host_usb_hub_dual_camera
  - "examples/usb/host/usb_hub_dual_camera/**/*"

.patterns-example_usb_host_usb_msc_ota: &patterns-example_usb_host_usb_msc_ota
  - "examples/usb/host/usb_msc_ota/**/*"

.patterns-example_usb_host_usb_rndis_4g_module: &patterns-example_usb_host_usb_rndis_4g_module
  - "examples/usb/host/usb_rndis_4g_module/**/*"

.patterns-example_usb_host_usb_ecm_4g_module: &patterns-example_usb_host_usb_ecm_4g_module
  - "examples/usb/host/usb_ecm_4g_module/**/*"

.patterns-example_usb_otg_usb_host_device_mode_manual_switch: &patterns-example_usb_otg_usb_host_device_mode_manual_switch
  - "examples/usb/otg/usb_host_device_mode_manual_switch/**/*"

.patterns-example_utilities_adc_tp_calibration: &patterns-example_utilities_adc_tp_calibration
  - "examples/utilities/adc_tp_calibration/**/*"

.patterns-example_utilities_xz_decompress_file: &patterns-example_utilities_xz_decompress_file
  - "examples/utilities/xz_decompress_file/**/*"

.patterns-example_vision_opencv_color_tracker: &patterns-example_vision_opencv_color_tracker
  - "examples/vision/opencv/color_tracker/**/*"

.patterns-example_gprof_gprof_simple: &patterns-example_gprof_gprof_simple
  - "examples/gprof/gprof_simple/**/*"

.patterns-example_elf_loader_elf_loader_example: &patterns-example_elf_loader_elf_loader_example
  - "examples/elf_loader/elf_loader_example/**/*"

.patterns-example_elf_loader_build_elf_file_example: &patterns-example_elf_loader_build_elf_file_example
  - "examples/elf_loader/build_elf_file_example/**/*"

.patterns-example_zero_cross_detection_example: &patterns-example_zero_cross_detection_example
  - "examples/zero_cross_detecion/**/*"

.patterns-example_relinker: &patterns-example_relinker
  - "examples/relinker/**/*"
  - "tools/cmake_utilities/scripts/relinker/**/*"

# tools folder, in the alphabetic order
.patterns-tools_cmake_utilities: &patterns-tools_cmake_utilities
  - "tools/cmake_utilities/**/*"

.patterns-yml: &patterns-yml
  - "**/*.yml"

##############
# if anchors #
##############
.if-protected: &if-protected
  if: '($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_BRANCH =~ /^release\/v/ || $CI_COMMIT_TAG =~ /^v\d+\.\d+(\.\d+)?($|-)/)'

.if-dev-push: &if-dev-push
  if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_BRANCH !~ /^release\/v/ && $CI_COMMIT_TAG !~ /^v\d+\.\d+(\.\d+)?($|-)/ && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "merge_request_event")'

##################
# Auto Generated #
##################
.if-trigger-job: &if-trigger-job
  if: '$BOT_DYNAMIC_TEST_JOBS && $BOT_DYNAMIC_TEST_JOBS =~ $CI_JOB_NAME'

.if-label-build: &if-label-build
  if: '$BOT_LABEL_BUILD || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*build(?:,[^,\n\r]+)*$/i'

.if-label-target_test: &if-label-target_test
  if: '$BOT_LABEL_TARGET_TEST || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*target_test(?:,[^,\n\r]+)*$/i'

.if-label-build_docs: &if-label-build_docs
  if: '$BOT_LABEL_BUILD_DOCS || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*build_docs(?:,[^,\n\r]+)*$/i'

.if-label-pre_check: &if-label-pre_check
  if: '$BOT_LABEL_PRE_CHECK || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*pre_check(?:,[^,\n\r]+)*$/i'

.if_label-deploy: &if-label-deploy
  if: '$BOT_LABEL_DEPLOY || $CI_MERGE_REQUEST_LABELS =~ /^(?:[^,\n\r]+,)*deploy(?:,[^,\n\r]+)*$/i'

# rules for examples
.rules:build:example_ai_esp_dl_human_activity_recognition:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_ai_esp_dl_human_activity_recognition

.rules:build:example_ai_esp_dl_touchpad_digit_recognition:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_ai_esp_dl_touchpad_digit_recognition

.rules:build:example_audio_wav_player:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_audio_pwm_audio
    - <<: *if-dev-push
      changes: *patterns-example_audio_wav_player

.rules:build:example_bluetooth_ble_conn_mgr:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_bluetooth_ble_conn_mgr
    - <<: *if-dev-push
      changes: *patterns-example_bluetooth_ble_conn_mgr

.rules:build:example_bluetooth_ble_anp:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_bluetooth_ble_profiles_std_ble_anp
    - <<: *if-dev-push
      changes: *patterns-example_bluetooth_ble_anp

.rules:build:example_bluetooth_ble_hrp:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_bluetooth_ble_profiles_std_ble_hrp
    - <<: *if-dev-push
      changes: *patterns-example_bluetooth_ble_hrp

.rules:build:example_bluetooth_ble_htp:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_bluetooth_ble_profiles_std_ble_htp
    - <<: *if-dev-push
      changes: *patterns-example_bluetooth_ble_htp

.rules:build:example_bluetooth_ble_services:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_bluetooth_ble_services
    - <<: *if-dev-push
      changes: *patterns-example_bluetooth_ble_services

.rules:build:example_bluetooth_ble_ota:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_bluetooth_ble_profiles_esp_ble_ota
    - <<: *if-dev-push
      changes: *patterns-example_bluetooth_ble_ota

.rules:build:example_bluetooth_ble_remote_control:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_bluetooth_ble_remote_control

.rules:build:example_camera_basic:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_camera_basic
    - <<: *if-dev-push
      changes: *patterns-example_common_components_camera

.rules:build:example_camera_pic_server:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_camera_pic_server
    - <<: *if-dev-push
      changes: *patterns-example_common_components_camera

.rules:build:example_camera_test_framerate:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_camera_test_framerate
    - <<: *if-dev-push
      changes: *patterns-example_common_components_camera

.rules:build:example_camera_video_recorder:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_camera_video_recorder
    - <<: *if-dev-push
      changes: *patterns-example_common_components_camera

.rules:build:example_camera_video_stream_server:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_camera_video_stream_server
    - <<: *if-dev-push
      changes: *patterns-example_common_components_camera

.rules:build:example_check_pedestrian_flow:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_check_pedestrian_flow

.rules:build:example_display_lcd_lcd_layer_blending:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_ek79007
    - <<: *if-dev-push
      changes: *patterns-example_display_lcd_lcd_layer_blending

.rules:build:example_display_lcd_lcd_with_te:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_display_lcd_lcd_with_te
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_axs15231b

.rules:build:example_display_lcd_mipi_dsi_avoid_tearing:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_ek79007
    - <<: *if-dev-push
      changes: *patterns-example_display_lcd_mipi_dsi_avoid_tearing

.rules:build:example_display_lcd_qspi_with_ram:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_gc9b71
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_sh8601
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_spd2010
    - <<: *if-dev-push
      changes: *patterns-example_display_lcd_qspi_with_ram

.rules:build:example_display_lcd_qspi_without_ram:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_st77903_qspi
    - <<: *if-dev-push
      changes: *patterns-example_display_lcd_qspi_without_ram

.rules:build:example_display_lcd_rgb_lcd_8bit:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_st77903_rgb
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_panel_io_additions
    - <<: *if-dev-push
      changes: *patterns-example_display_lcd_rgb_lcd_8bit

.rules:build:example_display_lcd_rgb_avoid_tearing:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_st7701
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_panel_io_additions
    - <<: *if-dev-push
      changes: *patterns-example_display_lcd_rgb_avoid_tearing

.rules:build:example_extended_vfs_gpio_gpio_simple:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_extended_vfs
    - <<: *if-dev-push
      changes: *patterns-example_extended_vfs_gpio_gpio_simple

.rules:build:example_extended_vfs_i2c_i2c_bh1750:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_extended_vfs
    - <<: *if-dev-push
      changes: *patterns-example_extended_vfs_i2c_i2c_bh1750

.rules:build:example_extended_vfs_i2c_i2c_tt21100:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_extended_vfs
    - <<: *if-dev-push
      changes: *patterns-example_extended_vfs_i2c_i2c_tt21100

.rules:build:example_extended_vfs_ledc_ledc_simple:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_extended_vfs
    - <<: *if-dev-push
      changes: *patterns-example_extended_vfs_ledc_ledc_simple

.rules:build:example_extended_vfs_spi_spi_master_simple:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_extended_vfs
    - <<: *if-dev-push
      changes: *patterns-example_extended_vfs_spi_spi_master_simple

.rules:build:example_extended_vfs_spi_spi_slave_simple:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_extended_vfs
    - <<: *if-dev-push
      changes: *patterns-example_extended_vfs_spi_spi_slave_simple

.rules:build:example_get_started_blink:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_get_started_blink

.rules:build:example_get_started_button_power_save:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_button
    - <<: *if-dev-push
      changes: *patterns-example_get_started_button_power_save

.rules:build:example_get_started_knob_power_save:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_knob
    - <<: *if-dev-push
      changes: *patterns-example_get_started_knob_power_save

.rules:build:example_sensors_power_measure:
 rules:
   - <<: *if-protected
   - <<: *if-label-build
   - <<: *if-dev-push
     changes: *patterns-components_sensors_power_measure
   - <<: *if-dev-push
     changes: *patterns-example_sensors_power_measure

.rules:build:example_gprof_gprof_simple:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_gprof_gprof_simple

.rules:build:example_indicator:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_led_led_indicator
    - <<: *if-dev-push
      changes: *patterns-example_indicator

.rules:build:example_keyboard:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_keyboard_button
    - <<: *if-dev-push
      changes: *patterns-example_keyboard

.rules:build:example_lighting_lightbulb:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_led_lightbulb_driver
    - <<: *if-dev-push
      changes: *patterns-example_lighting_lightbulb

.rules:build:example_lvgl_freetype:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_lvgl_freetype
    - <<: *if-dev-push
      changes: *patterns-components_display_tools_esp_mmap_assets

.rules:build:example_motor_bldc_fan_rainmaker:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_motor_esp_sensorless_bldc_control
    - <<: *if-dev-push
      changes: *patterns-example_motor_bldc_fan_rainmaker

.rules:build:example_motor_drv10987:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_motor_drv10987
    - <<: *if-dev-push
      changes: *patterns-example_motor_drv10987
    - <<: *if-dev-push
      changes: *patterns-components_i2c_bus

.rules:build:example_motor_foc_openloop_control:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_motor_esp_simplefoc
    - <<: *if-dev-push
      changes: *patterns-example_motor_foc_openloop_control
    - <<: *if-dev-push
      changes: *patterns-components_i2c_bus

.rules:build:example_motor_foc_velocity_control:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_motor_esp_simplefoc
    - <<: *if-dev-push
      changes: *patterns-example_motor_foc_velocity_control

.rules:build:example_motor_foc_knob:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_motor_esp_simplefoc
    - <<: *if-dev-push
      changes: *patterns-example_motor_foc_knob

.rules:build:example_motor_servo_control:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_motor_servo
    - <<: *if-dev-push
      changes: *patterns-example_motor_servo_control

.rules:build:example_ota_simple_ota_example:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_bootloader_support_plus
    - <<: *if-dev-push
      changes: *patterns-example_ota_simple_ota_example

.rules:build:example_perf_benchmark:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_perf_benchmark
    - <<: *if-dev-push
      changes: *patterns-components_display_tools_esp_mmap_assets
    - <<: *if-dev-push
      changes: *patterns-components_display_tools_esp_lv_decoder
    - <<: *if-dev-push
      changes: *patterns-components_display_tools_esp_lv_fs

.rules:build:example_screen:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_screen
    - <<: *if-dev-push
      changes: *patterns-example_screen

.rules:build:example_sensors_sensor_control_led:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_bus
    - <<: *if-dev-push
      changes: *patterns-components_sensors_gesture_apds9960
    - <<: *if-dev-push
      changes: *patterns-components_sensors_humiture_hdc2010
    - <<: *if-dev-push
      changes: *patterns-components_sensors_humiture_hts221
    - <<: *if-dev-push
      changes: *patterns-components_sensors_humiture_mvh3004d
    - <<: *if-dev-push
      changes: *patterns-components_sensors_humiture_sht3x
    - <<: *if-dev-push
      changes: *patterns-components_sensors_imu_lis2dh12
    - <<: *if-dev-push
      changes: *patterns-components_sensors_imu_mpu6050
    - <<: *if-dev-push
      changes: *patterns-components_sensors_light_sensor_bh1750
    - <<: *if-dev-push
      changes: *patterns-components_sensors_light_sensor_veml6040
    - <<: *if-dev-push
      changes: *patterns-components_sensors_light_sensor_veml6075
    - <<: *if-dev-push
      changes: *patterns-components_sensors_pressure_bme280
    - <<: *if-dev-push
      changes: *patterns-components_sensors_sensor_hub
    - <<: *if-dev-push
      changes: *patterns-example_sensors_sensor_control_led

.rules:build:example_sensors_sensor_hub_monitor:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_bus
    - <<: *if-dev-push
      changes: *patterns-components_sensors_gesture_apds9960
    - <<: *if-dev-push
      changes: *patterns-components_sensors_humiture_hdc2010
    - <<: *if-dev-push
      changes: *patterns-components_sensors_humiture_hts221
    - <<: *if-dev-push
      changes: *patterns-components_sensors_humiture_mvh3004d
    - <<: *if-dev-push
      changes: *patterns-components_sensors_humiture_sht3x
    - <<: *if-dev-push
      changes: *patterns-components_sensors_imu_lis2dh12
    - <<: *if-dev-push
      changes: *patterns-components_sensors_imu_mpu6050
    - <<: *if-dev-push
      changes: *patterns-components_sensors_light_sensor_bh1750
    - <<: *if-dev-push
      changes: *patterns-components_sensors_light_sensor_veml6040
    - <<: *if-dev-push
      changes: *patterns-components_sensors_light_sensor_veml6075
    - <<: *if-dev-push
      changes: *patterns-components_sensors_pressure_bme280
    - <<: *if-dev-push
      changes: *patterns-components_sensors_sensor_hub
    - <<: *if-dev-push
      changes: *patterns-example_sensors_sensor_hub_monitor

.rules:build:example_touch_touch_button:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_touch_touch_button
    - <<: *if-dev-push
      changes: *patterns-components_touch_touch_button

.rules:build:example_touch_touch_button_sensor:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_touch_touch_button
    - <<: *if-dev-push
      changes: *patterns-components_touch_touch_button_sensor

.rules:build:example_touch_touch_proximity:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_touch_touch_proximity
    - <<: *if-dev-push
      changes: *patterns-components_touch_touch_proximity_sensor

.rules:build:example_touch_touch_slider_sensor:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_touch_touch_slider
    - <<: *if-dev-push
      changes: *patterns-components_touch_touch_slider_sensor

.rules:build:example_ulp_lp_cpu_lp_environment_sensor:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_ulp_lp_cpu_lp_environment_sensor

.rules:build:example_usb_device_usb_hid_device:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_usb_device_usb_hid_device

.rules:build:example_usb_device_usb_lcd_display:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_usb_device_uvc
    - <<: *if-dev-push
      changes: *patterns-example_usb_device_usb_lcd_display

.rules:build:example_usb_device_bootloader_uf2:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_esp_tinyuf2
    - <<: *if-dev-push
      changes: *patterns-example_usb_device_bootloader_uf2

.rules:build:example_usb_device_usb_dongle:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_usb_device_usb_dongle

.rules:build:example_usb_device_usb_uart_bridge:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_usb_device_usb_uart_bridge

.rules:build:example_usb_device_usb_uac:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_usb_device_uac
    - <<: *if-dev-push
      changes: *patterns-example_usb_device_usb_uac

.rules:build:example_usb_device_usb_dual_uvc_device:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_usb_device_uvc
    - <<: *if-dev-push
      changes: *patterns-example_usb_device_usb_dual_uvc_device
    - <<: *if-dev-push
      changes: *patterns-components_avi_player

.rules:build:example_usb_device_usb_extend_screen:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_usb_device_usb_extend_screen

.rules:build:example_usb_device_usb_webcam:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_usb_device_uvc
    - <<: *if-dev-push
      changes: *patterns-example_usb_device_usb_webcam

.rules:build:example_usb_device_usb_msc_wireless_disk:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_usb_device_usb_msc_wireless_disk

.rules:build:example_usb_device_usb_surface_dial:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_knob
    - <<: *if-dev-push
      changes: *patterns-example_usb_device_usb_surface_dial

.rules:build:example_usb_device_usb_uf2_nvs:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_esp_tinyuf2
    - <<: *if-dev-push
      changes: *patterns-example_usb_device_usb_uf2_nvs

.rules:build:example_usb_device_usb_uf2_ota:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_esp_tinyuf2
    - <<: *if-dev-push
      changes: *patterns-example_usb_device_usb_uf2_ota

.rules:build:example_usb_host_usb_camera_lcd_display:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_usb_stream
    - <<: *if-dev-push
      changes: *patterns-example_usb_host_usb_camera_lcd_display

.rules:build:example_usb_host_usb_camera_mic_spk:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_usb_stream
    - <<: *if-dev-push
      changes: *patterns-example_usb_host_usb_camera_mic_spk

.rules:build:example_usb_host_usb_audio_player:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_usb_host_usb_audio_player

.rules:build:example_usb_host_usb_cdc_4g_module:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_led_led_indicator
    - <<: *if-dev-push
      changes: *patterns-components_usb_iot_usbh
    - <<: *if-dev-push
      changes: *patterns-components_usb_iot_usbh_cdc
    - <<: *if-dev-push
      changes: *patterns-components_usb_iot_usbh_modem
    - <<: *if-dev-push
      changes: *patterns-example_usb_host_usb_cdc_4g_module

.rules:build:example_usb_host_usb_cdc_basic:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_iot_usbh
    - <<: *if-dev-push
      changes: *patterns-components_usb_iot_usbh_cdc
    - <<: *if-dev-push
      changes: *patterns-example_usb_host_usb_cdc_basic

.rules:build:example_usb_host_usb_hub_dual_camera:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_usb_host_usb_hub_dual_camera

.rules:build:example_usb_host_usb_msc_ota:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_esp_msc_ota
    - <<: *if-dev-push
      changes: *patterns-example_usb_host_usb_msc_ota

.rules:build:example_usb_host_usb_ecm_4g_module:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_iot_usbh_ecm
    - <<: *if-dev-push
      changes: *patterns-example_usb_host_usb_ecm_4g_module
    - <<: *if-dev-push
      changes: *patterns-components_usb_iot_usbh_cdc
    - <<: *if-dev-push
      changes: *patterns-components_iot_eth

.rules:build:example_usb_host_usb_rndis_4g_module:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_iot_usbh_cdc
    - <<: *if-dev-push
      changes: *patterns-components_usb_iot_usbh_rndis
    - <<: *if-dev-push
      changes: *patterns-components_iot_eth
    - <<: *if-dev-push
      changes: *patterns-example_usb_host_usb_rndis_4g_module

.rules:build:example_usb_otg_usb_host_device_mode_manual_switch:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_button
    - <<: *if-dev-push
      changes: *patterns-components_usb_esp_msc_ota
    - <<: *if-dev-push
      changes: *patterns-example_usb_otg_usb_host_device_mode_manual_switch

.rules:build:example_utilities_adc_tp_calibration:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_utilities_adc_tp_calibration
    - <<: *if-dev-push
      changes: *patterns-example_utilities_adc_tp_calibration

.rules:build:example_utilities_xz_decompress_file:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_utilities_xz
    - <<: *if-dev-push
      changes: *patterns-example_utilities_xz_decompress_file

.rules:build:example_vision_opencv_color_tracker:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_vision_opencv_color_tracker

.rules:build:example_elf_loader_elf_loader_example:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_elf_loader_elf_loader_example

.rules:build:example_elf_loader_build_elf_file_example:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_elf_loader_build_elf_file_example

.rules:build:example_relinker:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-example_relinker

# rules for ut
.rules:build:component_audio_adc_mic_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_audio_adc_mic

.rules:build:component_audio_dac_audio_test:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_audio_dac_audio

.rules:build:component_audio_pwm_audio_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_audio_pwm_audio

.rules:build:components_avi_player_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_avi_player

.rules:build:components_bluetooth_ble_hci_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_bluetooth_ble_hci

.rules:build:component_bus_test:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_bus

.rules:build:components_button_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_button

.rules:build:components_sensors_power_measure_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_sensors_power_measure

.rules:build:components_display_digital_tube_ch450_test:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_digital_tube_ch450

.rules:build:components_display_digital_tube_ht16c21_test:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_digital_tube_ht16c21

.rules:build:components_display_digital_tube_is31fl3xxx_test:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_digital_tube_is31fl3xxx

.rules:build:components_display_lcd_esp_lcd_axs15231b_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_axs15231b

.rules:build:components_display_lcd_esp_lcd_ek79007_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_ek79007

.rules:build:components_display_lcd_esp_lcd_jd9165_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_jd9165

.rules:build:components_display_lcd_esp_lcd_jd9365_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_jd9365

.rules:build:components_display_lcd_esp_lcd_gc9b71_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_gc9b71

.rules:build:components_display_lcd_esp_lcd_hx8399_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_hx8399

.rules:build:components_display_lcd_esp_lcd_panel_io_additions_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_panel_io_additions

.rules:build:components_display_lcd_esp_lcd_nv3022b_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_nv3022b

.rules:build:components_display_lcd_esp_lcd_sh8601_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_sh8601

.rules:build:components_display_lcd_esp_lcd_spd2010_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_spd2010

.rules:build:components_display_lcd_esp_lcd_st7701_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_st7701

.rules:build:components_display_lcd_esp_lcd_st7703_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_st7703

.rules:build:components_display_lcd_esp_lcd_st77903_qspi_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_st77903_qspi

.rules:build:components_display_lcd_esp_lcd_st77903_rgb_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_st77903_rgb

.rules:build:components_display_lcd_esp_lcd_st77916_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_st77916

.rules:build:components_display_lcd_esp_lcd_st77922_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_st77922

.rules:build:components_display_lcd_esp_lcd_usb_display_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_esp_lcd_usb_display

.rules:build:components_display_lcd_touch_esp_lcd_touch_ili2118_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_touch_esp_lcd_touch_ili2118

.rules:build:components_display_lcd_touch_esp_lcd_touch_spd2010_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_touch_esp_lcd_touch_spd2010

.rules:build:components_display_lcd_touch_esp_lcd_touch_st7123_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_lcd_touch_esp_lcd_touch_st7123

.rules:build:components_display_screen_test:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_screen

.rules:build:components_display_tools_esp_lv_decoder_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_tools_esp_lv_decoder

.rules:build:components_display_tools_esp_lv_fs_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_tools_esp_lv_fs
    - <<: *if-dev-push
      changes: *patterns-components_display_tools_esp_mmap_assets

.rules:build:components_display_tools_esp_mmap_assets_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_tools_esp_mmap_assets

.rules:build:components_display_touch_panel_test:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_display_touch_panel

.rules:build:components_keyboard_button_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_keyboard_button

.rules:build:components_expander_io_expander_mcp23017_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_expander_io_expander_mcp23017

.rules:build:components_ir_ir_learn_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_ir_ir_learn

.rules:build:components_knob_test:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_knob

.rules:build:components_led_led_indicator_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_led_led_indicator

.rules:build:components_led_light_test:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_led_light

.rules:build:components_led_lightbulb_driver_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_led_lightbulb_driver

.rules:build:components_motor_drv10987_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_motor_drv10987
    - <<: *if-dev-push
      changes: *patterns-components_i2c_bus

.rules:build:components_motor_esp_simplefoc_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_motor_esp_simplefoc

.rules:build:components_motor_esp_sensorless_bldc_control_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_motor_esp_sensorless_bldc_control

.rules:build:components_motor_servo_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_motor_servo

# To avoid factors such as unstable wifi or expired openai-key, run ci-test only when the component itself changes.
.rules:build:components_openai_test_apps:
  rules:
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-components_openai

.rules:build:components_sensors_adc_mcp3201_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_sensors_adc_mcp3201

.rules:build:components_sensors_battery_fuel_gauge_adc_battery_estimation_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_sensors_battery_fuel_gauge_adc_battery_estimation

.rules:build:components_sensors_battery_fuel_gauge_max17048_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_sensors_battery_fuel_gauge_max17048

.rules:build:components_sensors_gesture_apds9960_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_sensors_gesture_apds9960
    - <<: *if-dev-push
      changes: *patterns-components_i2c_bus

.rules:build:components_sensors_humiture_hdc2010_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_sensors_humiture_hdc2010
    - <<: *if-dev-push
      changes: *patterns-components_i2c_bus

.rules:build:components_sensors_humiture_hts221_test:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_sensors_humiture_hts221

.rules:build:components_sensors_humiture_mvh3004d_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_sensors_humiture_mvh3004d
    - <<: *if-dev-push
      changes: *patterns-components_i2c_bus

.rules:build:components_sensors_humiture_sht3x_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_sensors_humiture_sht3x
    - <<: *if-dev-push
      changes: *patterns-components_i2c_bus

.rules:build:components_sensors_imu_lis2dh12_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_sensors_imu_lis2dh12
    - <<: *if-dev-push
      changes: *patterns-components_i2c_bus

.rules:build:components_sensors_imu_mpu6050_test:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_sensors_imu_mpu6050

.rules:build:components_sensors_light_sensor_bh1750_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_sensors_light_sensor_bh1750
    - <<: *if-dev-push
      changes: *patterns-components_i2c_bus

.rules:build:components_sensors_light_sensor_veml6040_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_sensors_light_sensor_veml6040
    - <<: *if-dev-push
      changes: *patterns-components_i2c_bus

.rules:build:components_sensors_light_sensor_veml6075_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_sensors_light_sensor_veml6075
    - <<: *if-dev-push
      changes: *patterns-components_i2c_bus

.rules:build:components_sensors_pressure_bme280_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_sensors_pressure_bme280
    - <<: *if-dev-push
      changes: *patterns-components_i2c_bus

.rules:build:components_sensors_sensor_hub_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_sensors_sensor_hub
    - <<: *if-dev-push
      changes: *patterns-components_i2c_bus

.rules:build:components_spi_bus_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_spi_bus

.rules:build:components_storage_eeprom_at24c02_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_storage_eeprom_at24c02
    - <<: *if-dev-push
      changes: *patterns-components_i2c_bus

.rules:build:components_touch_touch_proximity_sensor_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_touch_touch_proximity_sensor

.rules:build:components_touch_touch_button_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_touch_touch_button

.rules:build:components_touch_touch_button_sensor_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_touch_touch_button_sensor

.rules:build:components_touch_touch_slider_sensor_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_touch_touch_slider_sensor

.rules:build:components_usb_usb_host_rndis_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_usb_host_rndis_test_apps
    - <<: *if-dev-push
      changes: *patterns-components_usb_iot_usbh_cdc

.rules:build:components_usb_iot_usbh_rndis_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_iot_usbh_rndis
    - <<: *if-dev-push
      changes: *patterns-components_usb_iot_usbh_cdc

.rules:build:components_usb_esp_msc_ota_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_esp_msc_ota

.rules:build:components_usb_iot_usbh_test:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_iot_usbh

.rules:build:components_usb_iot_usbh_cdc_test:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_iot_usbh
    - <<: *if-dev-push
      changes: *patterns-components_usb_iot_usbh_cdc

.rules:build:components_usb_iot_usbh_modem_test:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_iot_usbh
    - <<: *if-dev-push
      changes: *patterns-components_usb_iot_usbh_cdc
    - <<: *if-dev-push
      changes: *patterns-components_usb_iot_usbh_modem

.rules:build:components_usb_usb_stream_test:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_usb_stream

.rules:build:components_usb_usb_device_uac:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_usb_device_uac

.rules:build:components_usb_usb_device_uvc:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_usb_usb_device_uvc

.rules:build:components_utilities_adc_tp_calibration_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_utilities_adc_tp_calibration

.rules:build:components_sensors_humiture_aht20_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_sensors_humiture_aht20

.rules:build:components_sensors_radar_at581x_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_sensors_radar_at581x

.rules:build:components_zero_detection_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_zero_detection

.rules:build:components_ntc_driver_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_ntc_driver

.rules:build:components_sensors_power_monitor_ina236_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_sensors_power_monitor_ina236
    - <<: *if-dev-push
      changes: *patterns-components_bus
    - <<: *if-dev-push
      changes: *patterns-components_i2c_bus

.rules:build:components_i2c_bus_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-components_i2c_bus

.rules:build:tools_cmake_utilities_test_apps:
  rules:
    - <<: *if-protected
    - <<: *if-label-build
    - <<: *if-label-target_test
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-tools_cmake_utilities
    - <<: *if-dev-push
      changes: *patterns-components_tools_cmake_utilities_test_component1
    - <<: *if-dev-push
      changes: *patterns-components_tools_cmake_utilities_test_component2

# For others
.rules:build:docs:
  rules:
    - <<: *if-protected
    - <<: *if-label-build_docs
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-docs
    - <<: *if-dev-push
      changes: *patterns-docs_inc

.rules:deploy:docs_preview:
  rules:
    - <<: *if-label-build_docs
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-docs
    - <<: *if-dev-push
      changes: *patterns-docs_inc

.rules:deploy:docs_production:
  rules:
    - <<: *if-protected

.rules:pre_check:readme:
  rules:
    - <<: *if-protected
    - <<: *if-label-pre_check
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-docs_md

.rules:pre_check:components:
  rules:
    - <<: *if-protected
    - <<: *if-label-pre_check
    - <<: *if-trigger-job
    - <<: *if-dev-push
      changes: *patterns-build_system
    - <<: *if-dev-push
      changes: *patterns-yml
