# Defines a list of files that are part of main core of Home Assistant.
# Changes to these files/filters define how our CI test suite is ran.
core: &core
  - homeassistant/*.py
  - homeassistant/auth/**
  - homeassistant/helpers/**
  - homeassistant/package_constraints.txt
  - homeassistant/util/**
  - pyproject.toml
  - requirements.txt
  - setup.cfg

# Our base platforms, that are used by other integrations
base_platforms: &base_platforms
  - homeassistant/components/air_quality/**
  - homeassistant/components/alarm_control_panel/**
  - homeassistant/components/binary_sensor/**
  - homeassistant/components/button/**
  - homeassistant/components/calendar/**
  - homeassistant/components/camera/**
  - homeassistant/components/climate/**
  - homeassistant/components/cover/**
  - homeassistant/components/device_tracker/**
  - homeassistant/components/diagnostics/**
  - homeassistant/components/fan/**
  - homeassistant/components/geo_location/**
  - homeassistant/components/humidifier/**
  - homeassistant/components/image_processing/**
  - homeassistant/components/light/**
  - homeassistant/components/lock/**
  - homeassistant/components/media_player/**
  - homeassistant/components/notify/**
  - homeassistant/components/number/**
  - homeassistant/components/remote/**
  - homeassistant/components/scene/**
  - homeassistant/components/select/**
  - homeassistant/components/sensor/**
  - homeassistant/components/siren/**
  - homeassistant/components/stt/**
  - homeassistant/components/switch/**
  - homeassistant/components/tts/**
  - homeassistant/components/update/**
  - homeassistant/components/vacuum/**
  - homeassistant/components/water_heater/**
  - homeassistant/components/weather/**

# Extra components that trigger the full suite
components: &components
  - homeassistant/components/alert/**
  - homeassistant/components/alexa/**
  - homeassistant/components/application_credentials/**
  - homeassistant/components/auth/**
  - homeassistant/components/automation/**
  - homeassistant/components/backup/**
  - homeassistant/components/cloud/**
  - homeassistant/components/config/**
  - homeassistant/components/configurator/**
  - homeassistant/components/conversation/**
  - homeassistant/components/demo/**
  - homeassistant/components/device_automation/**
  - homeassistant/components/dhcp/**
  - homeassistant/components/discovery/**
  - homeassistant/components/energy/**
  - homeassistant/components/ffmpeg/**
  - homeassistant/components/frontend/**
  - homeassistant/components/google_assistant/**
  - homeassistant/components/group/**
  - homeassistant/components/hassio/**
  - homeassistant/components/homeassistant/**
  - homeassistant/components/http/**
  - homeassistant/components/image/**
  - homeassistant/components/input_boolean/**
  - homeassistant/components/input_button/**
  - homeassistant/components/input_datetime/**
  - homeassistant/components/input_number/**
  - homeassistant/components/input_select/**
  - homeassistant/components/input_text/**
  - homeassistant/components/logbook/**
  - homeassistant/components/logger/**
  - homeassistant/components/lovelace/**
  - homeassistant/components/media_source/**
  - homeassistant/components/mjpeg/**
  - homeassistant/components/mqtt/**
  - homeassistant/components/network/**
  - homeassistant/components/onboarding/**
  - homeassistant/components/otp/**
  - homeassistant/components/persistent_notification/**
  - homeassistant/components/person/**
  - homeassistant/components/recorder/**
  - homeassistant/components/safe_mode/**
  - homeassistant/components/script/**
  - homeassistant/components/shopping_list/**
  - homeassistant/components/ssdp/**
  - homeassistant/components/stream/**
  - homeassistant/components/sun/**
  - homeassistant/components/system_health/**
  - homeassistant/components/tag/**
  - homeassistant/components/template/**
  - homeassistant/components/timer/**
  - homeassistant/components/usb/**
  - homeassistant/components/webhook/**
  - homeassistant/components/websocket_api/**
  - homeassistant/components/zeroconf/**
  - homeassistant/components/zone/**

# Testing related files that affect the whole test/linting suite
tests: &tests
  - codecov.yaml
  - pylint/**
  - requirements_test_pre_commit.txt
  - requirements_test.txt
  - tests/auth/**
  - tests/backports/**
  - tests/common.py
  - tests/conftest.py
  - tests/hassfest/**
  - tests/helpers/**
  - tests/ignore_uncaught_exceptions.py
  - tests/mock/**
  - tests/pylint/**
  - tests/scripts/**
  - tests/test_util/**
  - tests/testing_config/**
  - tests/util/**

other: &other
  - .github/workflows/**
  - homeassistant/scripts/**

requirements: &requirements
  - .github/workflows/**
  - homeassistant/package_constraints.txt
  - script/pip_check
  - requirements*.txt
  - setup.cfg

any:
  - *base_platforms
  - *components
  - *core
  - *other
  - *requirements
  - *tests
