ci: skip integration tests for unrelated package changes#3935
ci: skip integration tests for unrelated package changes#3935lightstrike wants to merge 1 commit intotamagui:maintamagui/tamagui:mainfrom lightstrikelabs:ci/skip-integration-testslightstrikelabs/tamagui:ci/skip-integration-testsCopy head branch name to clipboard
Conversation
natew
left a comment
There was a problem hiding this comment.
The approach is sound and the optimization is worth doing, but the allowlist is missing three compiler packages that kitchen-sink's integration tests actually depend on. Skipping tests when these change would give false confidence.
Missing from the allowlist:
The kitchen-sink webpack build uses tamagui-loader (from code/compiler/loader/), which is included — but tamagui-loader has direct workspace dependencies on packages that are not in the allowlist:
code/compiler/static/**(@tamagui/static) — the core compiler logic;tamagui-loaderdepends on itcode/compiler/static-worker/**(@tamagui/static-worker) — the worker used bytamagui-loadercode/compiler/static-sync/**(@tamagui/static-sync) — used by@tamagui/babel-plugin, which is in the allowlist
You can verify via code/compiler/loader/package.json (depends on @tamagui/static and @tamagui/static-worker) and code/compiler/babel-plugin/package.json (depends on @tamagui/static-sync).
A change to @tamagui/static's core evaluation logic, for example, would skip the integration tests entirely under this PR as written.
Suggested fix — add these three lines to the integration-relevant filter:
- 'code/compiler/static/**'
- 'code/compiler/static-worker/**'
- 'code/compiler/static-sync/**'Minor note (not a safety issue): code/compiler/metro-plugin/** is in the allowlist, but the kitchen-sink web tests use webpack, not Metro. Metro is only used for native tests. This means changes to metro-plugin will unnecessarily trigger the 15-minute Playwright suite. Not harmful, just slightly over-inclusive.
Once those three missing paths are added, this is a solid optimization.
|
on second thought - we do need the entire dependency chain to be analyzed... checking |
Summary
changesdetection job usingdorny/paths-filterto skip the ~15min kitchen-sink Playwright integration tests when a PR only touches unrelated packages (e.g.,vite-plugin,next-plugin,.github/)checksandunit-testsjobs are unchanged and still run unconditionallyDetail
Kitchen-sink uses webpack with
tamagui-loaderand@tamagui/babel-plugin— it has no dependency on the vite or next plugins. The allowlist includes:code/core/,code/ui/,code/packages/,code/kitchen-sink/,code/compiler/babel-plugin/,code/compiler/loader/,code/compiler/metro-plugin/,code/demos/,package.json,bun.lockTest plan
code/compiler/vite-plugin/—integration-testsshould skipcode/core/web/—integration-testsshould runchecksandunit-testsstill run unconditionally on both