name: CI on: push: branches: [main, dev, feature/*] pull_request: branches: [main, dev] workflow_dispatch: jobs: lint-and-typecheck: name: Lint & Type Check runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v5 with: version: "latest" - name: Set up Python run: uv python install 3.14 - name: Install dependencies run: uv sync - name: Ruff check (fuzzforge-cli) run: | cd fuzzforge-cli uv run --extra lints ruff check src/ - name: Ruff check (fuzzforge-mcp) run: | cd fuzzforge-mcp uv run --extra lints ruff check src/ - name: Ruff check (fuzzforge-common) run: | cd fuzzforge-common uv run --extra lints ruff check src/ - name: Mypy type check (fuzzforge-cli) run: | cd fuzzforge-cli uv run --extra lints mypy src/ - name: Mypy type check (fuzzforge-mcp) run: | cd fuzzforge-mcp uv run --extra lints mypy src/ # NOTE: Mypy check for fuzzforge-common temporarily disabled # due to 37 pre-existing type errors in legacy code. # TODO: Fix type errors and re-enable strict checking #- name: Mypy type check (fuzzforge-common) # run: | # cd fuzzforge-common # uv run --extra lints mypy src/ test: name: Tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v5 with: version: "latest" - name: Set up Python run: uv python install 3.14 - name: Install dependencies run: uv sync --all-extras - name: Run MCP tests run: | cd fuzzforge-mcp uv run --extra tests pytest -v - name: Run common tests run: | cd fuzzforge-common uv run --extra tests pytest -v