There is ZUUL Gating[0] CI it is actually the perfect solution for this. It works with Github or Git based repository system.
It automatically tests the changes with a simulated merge on master together. So it orders PR1 -> PR2 -> PR3 -> .... -> PR-100 by order of approval. If PR1 -> PR2 (Fails) -> PR3 -> .... -> PR-100
It restarts -> PR3 -> .... -> PR-100 and Up after removing PR2. This behavior is even customizable.
Video of it in action: https://zuul-ci.org/media/simulation.webm
Links: [0]:https://zuul-ci.org/