name: test-rag

on:
  pull_request:
    paths: ["rag/**", ".github/workflows/test-rag.yml"]
  push:
    branches: [dev]
    paths: ["rag/**"]

jobs:
  test-rag:
    runs-on: ubuntu-latest
    timeout-minutes: 20
    services:
      postgres:
        image: pgvector/pgvector:pg16
        env:
          POSTGRES_USER: hayhooks
          POSTGRES_PASSWORD: hayhooks
          POSTGRES_DB: hayhooks_test
        ports: [5432:5432]
        options: >-
          --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
    env:
      PG_CONN_STR: postgresql://hayhooks:hayhooks@localhost:5432/hayhooks_test
      HAYHOOKS_API_KEY: ci-test-key-do-not-use-in-prod-32bytes
      OPENROUTER_API_KEY: ci-stub-not-real
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with: { python-version: "3.12" }
      - working-directory: rag
        run: pip install -e .[dev,eval]
      - working-directory: rag
        run: ruff check .
      - working-directory: rag
        run: mypy --ignore-missing-imports pipelines components
      - working-directory: rag
        run: pytest tests/ -v --timeout=300 -m "slow or not slow"
      - working-directory: rag
        run: python evals/ragas_smoke.py
