Skip to content

fix(mcp): confine path/config/source_roots to project root (THREAT-001) #25

fix(mcp): confine path/config/source_roots to project root (THREAT-001)

fix(mcp): confine path/config/source_roots to project root (THREAT-001) #25

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
schedule:
- cron: "0 2 * * 0"
permissions:
contents: read
security-events: write
jobs:
gate:
name: Tests + Lint + Types
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install
run: python -m pip install -e ".[dev]"
- name: Ruff
run: ruff check src tests
- name: Mypy
run: mypy src
- name: Pytest
run: pytest -q
self-hosting-scan:
name: Self-Hosting Scan (dogfood)
runs-on: ubuntu-latest
needs: gate
if: github.event_name != 'schedule'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install
run: python -m pip install -e ".[dev]"
- name: Scan self -> SARIF
run: wardline scan src/wardline --format sarif --output results.sarif
- name: Upload SARIF
if: always()
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
category: wardline-self-hosting
network:
name: Live judge e2e (weekly)
runs-on: ubuntu-latest
if: github.event_name == 'schedule'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install
run: python -m pip install -e ".[dev]"
- name: Network tests
run: pytest -m network -v
env:
WARDLINE_OPENROUTER_API_KEY: ${{ secrets.WARDLINE_OPENROUTER_API_KEY }}
docs:
name: Docs (build + deploy)
runs-on: ubuntu-latest
needs: gate
if: github.event_name != 'schedule'
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install
run: python -m pip install -e ".[docs]"
- name: Build (strict)
run: mkdocs build --strict
- name: Deploy (main only)
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
run: mkdocs gh-deploy --force