# CI Filter Patterns - See FILTERS.md for documentation
#
# Filters that trigger CI jobs:
#   core     -> dynamo build-test, all backend builds (vllm/sglang/trtllm), deploy tests
#   operator -> operator build and test
#   deploy   -> deploy-test-vllm-disagg-router
#   vllm     -> vllm build and test
#   sglang   -> sglang build and test
#   trtllm   -> trtllm build and test
#   frontend -> frontend EPP image build
#
# Filters for coverage only (no CI triggered):
#   docs, examples, ignore, planner

all:
  - '**'

docs:
  - 'docs/**'
  - 'fern/**'
  - '**/*.md'
  - '**/*.rst'
  - '**/*.txt'
  - '**/.gitignore'
  - '**/.helmignore'
  - '**/.gitattributes'
  - 'LICENSE'
  - 'CODEOWNERS'

examples:
  - 'recipes/**'
  - 'examples/**'
  - 'benchmarks/**'
  - '.devcontainer/**'
  - 'deploy/discovery/**'
  - 'deploy/inference-gateway/**'
  - 'deploy/observability/**'
  - 'deploy/pre-deployment/**'

ignore:
  - '.lycheeignore'
  - '.pre-commit-config.yaml'
  - '.coderabbit.yaml'
  - '.clang-format'
  - 'dynamo.code-workspace'
  - 'deploy/*'
  - 'launch/**'
  - '.github/scripts/**'
  - '.github/ISSUE_TEMPLATE/**'
  - '.github/pull_request_template.md'
  - '.github/labeler.yml'
  - '.github/release.yml'
  - '.github/copy-pr-bot.yaml'
  - '.github/dco.yml'
  - 'container/Dockerfile.aws'
  - 'container/Dockerfile.docs'
  - 'container/Dockerfile.epp'
  - 'container/Dockerfile.frontend'
  - 'container/Dockerfile.local_dev'
  - 'container/run.sh'
  - 'container/use-sccache.sh'
  - 'container/dev/**'

ci: &ci
  - '.github/workflows/**'
  - '.github/filters.yaml'
  - '.github/actions/**'
  - '.github/scripts/parse_buildkit_output.py'

core:
  - *ci
  - 'container/build.sh'
  - 'container/Dockerfile'
  - '.dockerignore'
  - 'container/deps/*'
  - '.cargo/config.toml'
  - 'lib/**'
  - 'tests/**'
  - 'components/src/dynamo/router/**'
  - 'components/src/dynamo/mocker/**'
  - 'components/src/dynamo/frontend/**'
  - 'components/src/dynamo/common/**'
  - 'components/src/dynamo/gpu_memory_service/**'
  - '*.toml'
  - '*.lock'
  - '*.py'
  - '*.rs'
  - 'scripts/report_pytest_markers.py'
  - '!**/*.md'
  - '!**/*.rst'
  - '!**/*.txt'

operator:
  - *ci
  - 'deploy/operator/**'
  - 'deploy/operator/.*'

deploy:
  - 'deploy/helm/**'
  - 'deploy/utils/**'

planner:
  - 'components/src/dynamo/planner/**'
  - 'tests/planner/**'
  - 'components/src/dynamo/global_router/**'

vllm:
  - 'container/Dockerfile.vllm'
  - 'container/deps/requirements.vllm.txt'
  - 'container/deps/vllm/**'
  - 'examples/backends/vllm/**'
  - 'components/src/dynamo/vllm/**'

sglang:
  - 'container/Dockerfile.sglang'
  - 'examples/backends/sglang/**'
  - 'components/src/dynamo/sglang/**'

trtllm:
  - 'container/Dockerfile.trtllm'
  - 'container/deps/trtllm/**'
  - 'examples/backends/trtllm/**'
  - 'components/src/dynamo/trtllm/**'
  - 'container/build_trtllm_wheel.sh'

frontend:
  - *ci
  - '.cargo/config.toml'
  - 'lib/**'
  - '*.toml'
  - '*.lock'
  - 'container/build.sh'
  - 'container/Dockerfile'
  - 'container/deps/*'
  - 'components/src/dynamo/router/**'
  - 'components/src/dynamo/mocker/**'
  - 'components/src/dynamo/frontend/**'
  - 'components/src/dynamo/common/**'
  - 'deploy/inference-gateway/**'
