From cd7b97da1affed26a1694708d59df23141eaebc0 Mon Sep 17 00:00:00 2001 From: Youssef Faouzi <46967695+yousseffaouzi@users.noreply.github.com> Date: Thu, 15 Oct 2026 00:44:58 +0100 Subject: [PATCH] ci: add service-free Python smoke workflow Signed-off-by: Youssef Faouzi <46967695+yousseffaouzi@users.noreply.github.com> --- .github/workflows/python-smoke.yml | 65 ++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 .github/workflows/python-smoke.yml diff --git a/.github/workflows/python-smoke.yml b/.github/workflows/python-smoke.yml new file mode 100644 index 000000000..4fc17a0a0 --- /dev/null +++ b/.github/workflows/python-smoke.yml @@ -0,0 +1,65 @@ +name: Python Smoke + +on: + pull_request: + paths: + - 'src/**' + - 'pyproject.toml' + - 'uv.lock' + - '.python-version' + - '.github/workflows/python-smoke.yml' + +permissions: + contents: read + +concurrency: + group: python-smoke-${{ github.event.pull_request.number }} + cancel-in-progress: true + +jobs: + smoke: + name: Service-free Python smoke + runs-on: ubuntu-latest + timeout-minutes: 10 + env: + UV_PYTHON: '3.12' + steps: + - name: Checkout + uses: actions/checkout@v7 + with: + persist-credentials: false + + - name: Install uv + shell: bash + run: | + set -euo pipefail + UV_DIR="${RUNNER_TEMP}/uv-bin" + curl -LsSf https://astral.sh/uv/0.13.1/install.sh \ + | env UV_UNMANAGED_INSTALL="${UV_DIR}" sh + echo "${UV_DIR}" >> "${GITHUB_PATH}" + "${UV_DIR}/uv" --version + + - name: Check dependency lock + run: uv lock --check + + - name: Install smoke-test dependencies + shell: bash + run: | + set -euo pipefail + uv venv --python 3.12 + uv export --frozen --no-emit-project \ + --output-file "${RUNNER_TEMP}/constraints.txt" + uv pip install \ + --python .venv/bin/python \ + --constraint "${RUNNER_TEMP}/constraints.txt" \ + pytest \ + anyio \ + pytest-anyio \ + couchdb3 \ + 'mcp[cli]' \ + pendulum \ + python-dotenv \ + pydantic + + - name: Run smoke tests + run: .venv/bin/python -m pytest src/llm/tests src/servers/utilities/tests -q