Skip to content

ci(sdk-tests): run each SDK suite only when its own package changes - #2116

Closed
devin-ai-integration[bot] wants to merge 1 commit into
mainfrom
devin/1794320420-sdk-tests-own-paths
Closed

devin-ai-integration[bot] wants to merge 1 commit into
mainfrom
devin/1794320420-sdk-tests-own-paths

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Summary

sdk_tests.yml already path-filtered suites, but two things made most PRs run nearly everything:

  1. Base-SDK fan-out: packages/js-sdk changes also triggered CLI, Code Interpreter JS and Desktop JS; packages/python-sdk changes also triggered Code Interpreter Python and Desktop Python.
  2. Root JS files in a shared anchor: pnpm-lock.yaml / package.json / pnpm-workspace.yaml triggered every suite, including the Python ones. So a CLI PR that bumped a dependency ran all suites.

Now each suite runs only for its own package, its own workflow file, and:

  • shared (all suites): sdk_tests.yml, .tool-versions
  • js_shared (JS suites + CLI): the above plus root package.json, pnpm-workspace.yaml (overrides/catalog), and the root *.sdk.config.mts / vitest.cloudflare.config.mts / tsconfig.sdk.json
  • spec/** and dockerfile-utils-* count only for the base JS/Python SDKs, which use them

pnpm-lock.yaml is no longer a trigger, because a package's dependency change also touches its own package.json. workflow_dispatch still runs everything.

Checked against recent PRs (picomatch replay of the filters):

PR before after
#2091 (CLI + lockfile) all suites cli
#2102 (js-sdk + python-sdk) all 8 live suites js, python
#2094 (CLI) cli cli

Trade-off: a base-SDK change that breaks a dependent (CLI / Code Interpreter / Desktop) won't be caught on that PR. It will show up on the next PR that touches the dependent, or through a manual workflow_dispatch run. A lockfile-only change (a pnpm update within existing ranges) no longer runs JS suites either.

Link to Devin session: https://app.devin.ai/sessions/af049f96c55f4e1791ed5bb6a42f1712
Open in Devin Desktop: https://app.devin.ai/desktop/session/af049f96c55f4e1791ed5bb6a42f1712?variant=devin
Requested by: @mishushakov

@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@cla-bot cla-bot Bot added the cla-signed label Nov 10, 2026
@changeset-bot

changeset-bot Bot commented Nov 10, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 613fa35

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

TASTE.md review: compliant. 0 violations. This PR only changes the CI path filters in .github/workflows/sdk_tests.yml, and no TASTE.md rule (T-1 to T-74, which cover the JS/Python SDK public API) applies to it.

Written by Devin

@github-actions

Copy link
Copy Markdown
Contributor

Package Artifacts

Built from e29de37. Download artifacts from this workflow run.

JS SDK (e2b@2.63.1-devin-1794320420-sdk-tests-own-paths.0, with @e2b/dockerfile-utils@0.1.2-devin-1794320420-sdk-tests-own-paths.0):

npm install ./e2b-dockerfile-utils-0.1.2-devin-1794320420-sdk-tests-own-paths.0.tgz ./e2b-2.63.1-devin-1794320420-sdk-tests-own-paths.0.tgz

CLI (@e2b/cli@2.23.1-devin-1794320420-sdk-tests-own-paths.0):

npm install ./e2b-cli-2.23.1-devin-1794320420-sdk-tests-own-paths.0.tgz

Code Interpreter JS SDK (@e2b/code-interpreter@2.9.2-devin-1794320420-sdk-tests-own-paths.0):

npm install ./e2b-code-interpreter-2.9.2-devin-1794320420-sdk-tests-own-paths.0.tgz

Desktop JS SDK (@e2b/desktop@2.5.1-devin-1794320420-sdk-tests-own-paths.0):

npm install ./e2b-desktop-2.5.1-devin-1794320420-sdk-tests-own-paths.0.tgz

Python SDK (e2b==2.63.0+devin.1794320420.sdk.tests.own.paths, with e2b-dockerfile-utils==0.1.1+devin.1794320420.sdk.tests.own.paths):

pip install ./e2b_dockerfile_utils-0.1.1+devin.1794320420.sdk.tests.own.paths-py3-none-any.whl ./e2b-2.63.0+devin.1794320420.sdk.tests.own.paths-py3-none-any.whl

Code Interpreter Python SDK (e2b-code-interpreter==2.11.9+devin.1794320420.sdk.tests.own.paths):

pip install ./e2b_code_interpreter-2.11.9+devin.1794320420.sdk.tests.own.paths-py3-none-any.whl

Desktop Python SDK (e2b-desktop==2.7.2+devin.1794320420.sdk.tests.own.paths):

pip install ./e2b_desktop-2.7.2+devin.1794320420.sdk.tests.own.paths-py3-none-any.whl

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant