name: CI

on:
  push:
    branches: [main]
  pull_request:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - name: Check out repository
        uses: actions/checkout@v4

      - name: Install uv
        uses: astral-sh/setup-uv@v6
        with:
          version: "0.11.6"
          enable-cache: true

      - name: Validate lockfile and install dependencies
        run: uv sync --locked --group runtime --group ml --group dev

      - name: Compile Python sources
        run: uv run --frozen python -m compileall -q dashboard scrapers scoring backtesting ml ml_engine llm_client scripts orchestrator.py

      - name: Run tests
        run: uv run --frozen pytest
