An easy way to speed up CI/CD IMO is to build your own runners with all of your tools pre-installed (directly, from a cache, or a container). With GitHub Actions for instance, every job starts on a fresh machine, and you get penalized for parallelizing when every machine has to spend 1 minutes+ collecting dependencies. Ideally jobs should spin up in a clean environment with immediate access to tooling.