3 ms·
Thanks for your answer. How does CI work in practice? how do you avoid rebuilding and retesting the whole repo at every change? That would be an insane waste o
by Galanwe 4y ago
Thanks for your answer.
How does CI work in practice? how do you avoid rebuilding and retesting the whole repo at every change? That would be an insane waste of resource and time.
- krembanan 4y agoBy only testing and building packages that has a dependency on the changed package.
- Tostino 4y agoAnd how do you determine that dependency structure easily? What tooling helps with this?
- gitgud 4y agoMonorepos makes the dev experience simpler, at the expense of more complex CI I was resistant at first, but have found it to be a worthwhile trade-off
- lhorie 4y agoYou use a build system. There are a number of open source ones, we use Bazel. In a nutshell, it keeps track of dependency graphs, so you can test only affected projects. It can also cache execution of unchanged transitive steps, so you can skip builds/tests that were already run previously (e.g. you could skip most of a large 2nd CI run if all you did in a code review was edit one file. You can also parallelize execution across cloud nodes.