Fix Output Schema validation issue in tool result processing #315
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # =============================================================== | |
| # 🔍 Plugins Lint & Static Analysis - Plugins Code Quality Gate | |
| # =============================================================== | |
| # | |
| # - runs each linter in its own matrix job for visibility | |
| # - mirrors the actual CLI commands used locally (no `make`) | |
| # - ensures fast-failure isolation: one failure doesn't hide others | |
| # - each job installs the project in dev-editable mode | |
| # - logs are grouped and plain-text for readability | |
| # --------------------------------------------------------------- | |
| name: Plugins Lint & Static Analysis | |
| on: | |
| push: | |
| branches: ["main"] | |
| pull_request: | |
| branches: ["main"] | |
| permissions: | |
| contents: read | |
| jobs: | |
| lint-plugins: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # ------------------------------------------------------- | |
| # 🧼 Syntax & Format Checkers | |
| # ------------------------------------------------------- | |
| - id: yamllint | |
| setup: pip install yamllint | |
| cmd: yamllint -c .yamllint plugins | |
| # ------------------------------------------------------- | |
| # 🐍 Python Linters & Type Checkers | |
| # ------------------------------------------------------- | |
| - id: flake8 | |
| setup: pip install flake8 | |
| cmd: flake8 plugins | |
| - id: ruff | |
| setup: pip install ruff | |
| cmd: | | |
| ruff check plugins | |
| - id: unimport | |
| setup: pip install unimport | |
| cmd: | | |
| unimport plugins | |
| - id: vulture | |
| setup: pip install vulture | |
| cmd: | | |
| vulture plugins --min-confidence 80 | |
| - id: pylint | |
| setup: pip install pylint pylint-pydantic | |
| cmd: pylint plugins --errors-only --fail-under=10 | |
| - id: interrogate | |
| setup: pip install interrogate | |
| cmd: interrogate -vv plugins --fail-under 100 | |
| # Advanced Python Analysis | |
| - id: radon | |
| setup: pip install radon | |
| cmd: | | |
| radon cc plugins --min C --show-complexity | |
| radon mi plugins --min B | |
| name: ${{ matrix.id }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| # ----------------------------------------------------------- | |
| # 0️⃣ Checkout | |
| # ----------------------------------------------------------- | |
| - name: ⬇️ Checkout source | |
| uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 1 | |
| # ----------------------------------------------------------- | |
| # 1️⃣ Python Setup | |
| # ----------------------------------------------------------- | |
| - name: 🐍 Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.12" | |
| cache: pip | |
| # ----------------------------------------------------------- | |
| # 2️⃣ Install Project + Dev Dependencies | |
| # ----------------------------------------------------------- | |
| - name: 📦 Install project (editable mode) | |
| run: | | |
| python3 -m pip install --upgrade pip | |
| pip install -e .[dev] | |
| # ----------------------------------------------------------- | |
| # 3️⃣ Install Tool-Specific Requirements | |
| # ----------------------------------------------------------- | |
| - name: 🔧 Install tool - ${{ matrix.id }} | |
| run: ${{ matrix.setup }} | |
| # ----------------------------------------------------------- | |
| # 4️⃣ Run Linter / Validator | |
| # ----------------------------------------------------------- | |
| - name: 🔍 Run ${{ matrix.id }} | |
| run: ${{ matrix.cmd }} |