This is an automated email from the ASF dual-hosted git repository.

cgivre pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/drill-mcp.git

commit dcae48eb06651f937e1997c6e2d869e32d91b95d
Author: cgivre <[email protected]>
AuthorDate: Wed Aug 12 16:44:15 2026 -0400

    Add GitHub Actions CI workflow
    
    Run pytest on Python 3.11/3.12/3.13 (no jdbc/kerberos extras, proving
    the suite needs no JVM) and ruff check/format on pull requests and
    pushes to main. Add a CI status badge to the README.
---
 .github/workflows/ci.yml | 73 ++++++++++++++++++++++++++++++++++++++++++++++++
 README.md                |  6 ++--
 2 files changed, 77 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..29df814
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,73 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+# either express or implied.  See the License for the specific
+# language governing permissions and limitations under the
+# License.
+#
+
+name: CI
+
+on:
+  pull_request:
+  push:
+    branches: [main]
+
+permissions:
+  contents: read
+
+jobs:
+  tests:
+    name: tests (py${{ matrix.python-version }})
+    runs-on: ubuntu-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        python-version: ["3.11", "3.12", "3.13"]
+    steps:
+      - uses: actions/checkout@v4
+
+      - uses: actions/setup-python@v5
+        with:
+          python-version: ${{ matrix.python-version }}
+          cache: pip
+
+      # Deliberately no jdbc/kerberos extras: the suite needs no JVM and no
+      # Drill cluster, and installing them here would hide a regression
+      # where a test accidentally started depending on one.
+      - name: Install
+        run: pip install -e ".[dev]"
+
+      - name: Test
+        run: pytest
+
+  lint:
+    name: lint
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+
+      - uses: actions/setup-python@v5
+        with:
+          python-version: "3.11"
+          cache: pip
+
+      - name: Install
+        run: pip install -e ".[dev]"
+
+      - name: Ruff check
+        run: ruff check .
+
+      - name: Ruff format check
+        run: ruff format --check .
diff --git a/README.md b/README.md
index 24f4615..f312dfb 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,8 @@
-# drill-mcp
+# Drill-MCP Server
 
-An [MCP](https://modelcontextprotocol.io/) server for [Apache 
Drill](https://drill.apache.org/).
+[![CI](https://github.com/apache/drill-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/apache/drill-mcp/actions/workflows/ci.yml)
+
+The official [MCP](https://modelcontextprotocol.io/) server for [Apache 
Drill](https://drill.apache.org/).
 It lets an MCP client run read-only (and narrowly, explicitly allow-listed
 write) SQL against a Drill cluster, and inspect schemas, storage plugins,
 and cluster/query state. It does not implement Drill administration

Reply via email to