README: annotate each tool with field origin (extraction / LLM / meta… #61
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
| name: CI/CD Pipeline | |
| on: | |
| push: | |
| branches: [master, release] | |
| pull_request: | |
| branches: [master] | |
| release: | |
| types: [published] | |
| env: | |
| REGISTRY: ghcr.io | |
| IMAGE_NAME: ${{ github.repository }} | |
| jobs: | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install dependencies | |
| run: | | |
| pip install \ | |
| "git+https://github.com/vicentebolea/vtk-knowledge" \ | |
| "git+https://github.com/vicentebolea/vtk-validate" | |
| pip install -e ".[dev]" | |
| - name: ruff lint | |
| run: ruff check src/vtk_mcp/ | |
| - name: ruff format check | |
| run: ruff format --check src/vtk_mcp/ | |
| actionlint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install actionlint | |
| run: | | |
| bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash) | |
| echo "${PWD}" >> "$GITHUB_PATH" | |
| - name: Run actionlint | |
| run: actionlint | |
| test: | |
| name: Test (Python ${{ matrix.python-version }}) | |
| runs-on: ubuntu-latest | |
| needs: [lint, actionlint] | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: | | |
| pip install \ | |
| "git+https://github.com/vicentebolea/vtk-knowledge" \ | |
| "git+https://github.com/vicentebolea/vtk-validate" | |
| pip install -e ".[dev]" | |
| - name: Run unit tests | |
| run: pytest -m unit -v | |
| - name: Run client tests | |
| run: pytest tests/test_client_no_server.py -v | |
| - name: Run integration tests | |
| run: pytest -m integration -v | |
| uv-smoke: | |
| name: uv smoke test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: astral-sh/setup-uv@v5 | |
| - name: uv sync resolves all dependencies | |
| run: uv sync --extra dev | |
| - name: Import check | |
| run: uv run python -c "from vtk_mcp.config import Settings; Settings()" | |
| docker-deploy: | |
| name: Build and Push Deployment Image | |
| runs-on: ubuntu-latest | |
| needs: [lint, actionlint, test] | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/master' || github.event_name == 'release' | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Install Podman | |
| run: | | |
| sudo apt update | |
| sudo apt install -y podman | |
| - name: Log in to GitHub Container Registry | |
| run: | | |
| echo "${{ secrets.GITHUB_TOKEN }}" | podman login ghcr.io -u ${{ github.repository_owner }} --password-stdin | |
| - name: Get short SHA | |
| id: slug | |
| run: echo "SHORT_SHA=$(echo "${{ github.sha }}" | cut -c1-7)" >> "$GITHUB_OUTPUT" | |
| - name: Build and push deployment image | |
| run: | | |
| GITHUB_REPOSITORY="$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" | |
| podman build -f deploy.Dockerfile \ | |
| -t "ghcr.io/${GITHUB_REPOSITORY}/vtk-mcp:latest" \ | |
| -t "ghcr.io/${GITHUB_REPOSITORY}/vtk-mcp:${{ github.sha }}" \ | |
| -t "ghcr.io/${GITHUB_REPOSITORY}/vtk-mcp:${{ steps.slug.outputs.SHORT_SHA }}" \ | |
| . | |
| podman push "ghcr.io/${GITHUB_REPOSITORY}/vtk-mcp:latest" | |
| podman push "ghcr.io/${GITHUB_REPOSITORY}/vtk-mcp:${{ github.sha }}" | |
| podman push "ghcr.io/${GITHUB_REPOSITORY}/vtk-mcp:${{ steps.slug.outputs.SHORT_SHA }}" |