Our repository is so large/active that our CI is painful. You could also say our build/test process is so slow that our CI is painful. I’m looking for tooling to reduce the load on our CI.
For example, if only documentation has been changed, there is no need to run the tests. If no documentation is changed there is no need to rebuild the Doxygen website. If only a one component is changed, the unit tests for the others need to be run. If only tests have been changed there is no need to deploy the software. If only build config is changed, there is no need to run the unit tests.
I’m not sure what to google for. Is there a name for such mechanisms? Buildpipe seems roughly the right idea but is not really applicable without Buildkite.
The configuration for such a tool is so complex that a Python library might make more sense than an executable? We are certainly not the first ones. Does everybody write this from scratch? It makes sense for monorepos but the awesome list does not contain anything.