From 30fd78be1f051ce0a07a0388d777c15fdd4625cd Mon Sep 17 00:00:00 2001 From: Basile Bong Date: Tue, 16 Jun 2026 11:28:19 +0200 Subject: [PATCH] ci(python-sdk): run on every PR so the required check never hangs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `ruff + pyright + pytest` job is a required status check, but its `paths:` filter meant it reported no status on PRs that don't touch sdk/python — leaving non-SDK PRs stuck on "Expected — Waiting for status to be reported" forever. Drop the filter so the workflow always runs and always reports, matching test/typecheck/build (~1 min with uv caching). Co-Authored-By: Claude Opus 4.8 --- .github/workflows/test-python-sdk.yml | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/.github/workflows/test-python-sdk.yml b/.github/workflows/test-python-sdk.yml index 6baf436..05aed7a 100644 --- a/.github/workflows/test-python-sdk.yml +++ b/.github/workflows/test-python-sdk.yml @@ -1,6 +1,12 @@ # Python SDK test gate — ruff + pyright (strict) + pytest. # -# Path-filtered to sdk/python/** so PRs that don't touch the SDK skip it. +# Runs on every PR (no `paths:` filter) so it can be a *required* status +# check. A path-filtered workflow reports no status at all on PRs that +# don't match its paths, and a required check that never reports leaves +# the PR stuck on "Expected — Waiting for status to be reported" forever. +# The whole suite runs every time; with uv caching the interpreter + wheel +# set it lands in about a minute, same order as test/typecheck/build. +# # Local equivalent (from sdk/python/), using uv: # # uv venv --python 3.12.7 @@ -14,29 +20,13 @@ # The strict-mode gate lives in sdk/python/pyproject.toml `[tool.pyright]`; # CI just runs the binary. Type policy is documented at # sdk/python/.claude/rules/no-any.md / assert-never.md / typed-boundaries.md. -# -# DO NOT add this check to GitHub branch protection's "required status -# checks" without also adding a path-ignored skip job: workflows with -# `paths:` filters never report status on PRs that don't match, so a -# required check would hang non-SDK PRs forever waiting on a job that -# never queues. name: Python SDK on: pull_request: - paths: - - 'sdk/python/**' - - '.python-version' - - '.tool-versions' - - '.github/workflows/test-python-sdk.yml' push: branches: [main] - paths: - - 'sdk/python/**' - - '.python-version' - - '.tool-versions' - - '.github/workflows/test-python-sdk.yml' permissions: {}