You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
At the moment the workspace's workflow, native.yaml, is monolithic. If any packages in the workspace change, it runs all the tests for all the workspace packages. We'll need to change this when ffigen/jnigen move into the workspace (their tests are big and slow and slightly flaky). Options:
Keep the separate workflow files. We can still use ci.dart to drastically simplify them, but maybe we don't need to combine all the workflow files?
Update ci.dart to understand the dependency DAG, check the git diffs vs main (special case to run everything if we're on main branch), and only run the affected tests.
I guess historically our pattern has been to move more and more of our infra into Dart land, which leans us towards option 3.
I guess historically our pattern has been to move more and more of our infra into Dart land, which leans us towards option 3.
Yes, this allows for running things locally and for agents to run things locally.
the dependency DAG
Hm, actually you want to run things both if their dependencies change and if they are used as a dependency to get good test coverage.
their tests are big and slow and slightly flaky
I think it would be better to try to change our CI to categorize and slow and flaky tests.
We have a very crude --fast filter on ci.dart which does not do a good job. And with the move of package:native_toolchain_c to package:file and package:process we can start writing more tests as fast unit tests that mock file system and process calls rather than slow full integration tests.
Ways to categorize tests that I've suggested before.
Activity
dcharkes commentedon Sep 28, 2026
Yes, this allows for running things locally and for agents to run things locally.
Hm, actually you want to run things both if their dependencies change and if they are used as a dependency to get good test coverage.
I think it would be better to try to change our CI to categorize and slow and flaky tests.
We have a very crude
--fastfilter onci.dartwhich does not do a good job. And with the move ofpackage:native_toolchain_ctopackage:fileandpackage:processwe can start writing more tests as fast unit tests that mock file system and process calls rather than slow full integration tests.Ways to categorize tests that I've suggested before.
test/unit/&test/integration/. We could potentially skip flay tests by checking an environment var?cc @goderbauer