name: Forge CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

concurrency:
  group: forge-ci-${{ gitea.ref }}
  cancel-in-progress: true

jobs:
  smoke-and-build:
    runs-on: ubuntu-latest
    timeout-minutes: 5
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Install uv
        uses: astral-sh/setup-uv@v5
        with:
          enable-cache: true
          cache-dependency-glob: "uv.lock"

      - name: Set up Python 3.11
        run: uv python install 3.11

      - name: Install package
        run: |
          uv venv .venv --python 3.11
          source .venv/bin/activate
          uv pip install -e ".[all,dev]"

      - name: Smoke tests
        run: |
          source .venv/bin/activate
          python scripts/smoke_test.py
        env:
          OPENROUTER_API_KEY: ""
          OPENAI_API_KEY: ""
          NOUS_API_KEY: ""

      - name: Syntax guard
        run: |
          source .venv/bin/activate
          python scripts/syntax_guard.py

      - name: Green-path E2E
        run: |
          source .venv/bin/activate
          python -m pytest tests/test_green_path_e2e.py -q --tb=short
        env:
          OPENROUTER_API_KEY: ""
          OPENAI_API_KEY: ""
          NOUS_API_KEY: ""
