I've run into similar challenges in a number of (mostly microservice) systems that also avoided monorepos (for various practical and philosophical reasons). Parts of the solution space here are very familiar, especially relating to dependency management and "goldilocks" framework infrastructure.
I've especially found that most cloud CI tools (e.g. Circleci) fall flat here without a lot of additional work. Those ecosystems seem designed for a single repo; there's a big opportunity for someone to get CI right for non-trivial, multi-repo projects.
I haven't tried it, but GitLab's CI seems to support multi-project flows as an official feature[0]. I believe Jenkins also allows builds to trigger other builds.
My team is in the process of moving our Jenkins CI jobs to GitLab CI. We have moved most of them and our feeling is that GitLab's solution is more flexible and easier to manage than Jenkins'. For the really weird or tricky ones, we have a couple custom Docker images.
Right now build Java, Kotlin, .Net, .Net Core and Node projects with GitLab.
We setup Nexus to manage the code we share between projects and that has really made the process much easier to manage.
I've run into similar challenges in a number of (mostly microservice) systems that also avoided monorepos (for various practical and philosophical reasons). Parts of the solution space here are very familiar, especially relating to dependency management and "goldilocks" framework infrastructure.
I've especially found that most cloud CI tools (e.g. Circleci) fall flat here without a lot of additional work. Those ecosystems seem designed for a single repo; there's a big opportunity for someone to get CI right for non-trivial, multi-repo projects.