Skip to content

ci(python-sdk): run on every PR so the required check never hangs#97

Merged
basilebong merged 1 commit into
mainfrom
ci/python-sdk-always-run
Jun 17, 2026
Merged

ci(python-sdk): run on every PR so the required check never hangs#97
basilebong merged 1 commit into
mainfrom
ci/python-sdk-always-run

Conversation

@basilebong

Copy link
Copy Markdown
Collaborator

Summary

The ruff + pyright + pytest job is a required branch-protection check, but the workflow was scoped with an on.*.paths filter to sdk/python/**. On any PR that doesn't touch the SDK the workflow never fires, so the required check never reports a status and the PR sits on "Expected — Waiting for status to be reported" forever. This branch is the live example: it changes only pnpm-* files, and the check was stuck.

A workflow-level paths: filter and a required status check are fundamentally incompatible: "required" means the check must report before merge, and a path-filtered workflow reports nothing when it doesn't match. The absence is the block.

This drops the filter so the workflow always runs and always reports — green in ~1 min on non-SDK PRs (uv caches the interpreter + wheel set), red only when the SDK actually breaks. It now matches test / typecheck / build, the repo's three other gates, none of which path-filter. The header comment is rewritten to document the why so the filter doesn't get re-added.

How to verify

  • This PR touches no sdk/python/** files, yet ruff + pyright + pytest should now run and pass instead of hanging.
  • A later PR that does touch sdk/python/ still runs the full suite — confirm it fails on a deliberate lint/type error.

Notes

  • No branch-protection change required: the required context name (ruff + pyright + pytest, the job name) is unchanged.
  • Trade-off: every PR now pays ~1 min of Python CI even when nothing under sdk/python changed. That is the cost of keeping it a reliable required gate; the alternative (un-requiring it) would let a broken SDK merge silently.

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 <noreply@anthropic.com>
@LukasPoque LukasPoque marked this pull request as ready for review June 16, 2026 10:45
@LukasPoque

Copy link
Copy Markdown
Member

@basilebong think for now thats a good idea, its does not consumes too much CI time so it should be fine

@LukasPoque LukasPoque left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@basilebong basilebong merged commit ddae872 into main Jun 17, 2026
7 checks passed
@basilebong basilebong deleted the ci/python-sdk-always-run branch June 17, 2026 07:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants