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: ""