google / mono_repo.dart

Allows easy management of repositories with multiple Dart packages
https://pub.dev/packages/mono_repo
BSD 3-Clause "New" or "Revised" License
159 stars 32 forks source link

initial cut, only run jobs for modified packages #454

Open jakemac53 opened 1 year ago

jakemac53 commented 1 year ago

Ugh, I ran into an issue here that might be a bit hard to reconcile.

This doesn't appear to work well with our idea of "stages". Jobs in later stages depend on all the jobs from previous stages completing, and I think they get skipped if any of those get skipped. But some of them might be for other packages, which were skipped due to not being modified.

We could do the following potentially:

jakemac53 commented 1 year ago

I think that the easiest solution here is going to be creating separate workflow files for each package, and using the regular workflow level config for filtering which workflows run. We can investigate that option in a different PR as it will look quite different.

Note that it will be incompatible with the logic to merge jobs across packages, but that should be an OK tradeoff.