[INFRA]: Multi-stage CI
- Dominant language
- C++
- Stars
- 2.5k
- Forks
- 487
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 296
Description
### Is this a duplicate?
- [x] I confirmed there appear to be no [duplicate issues](https://github.com/NVIDIA/cccl/issues) for this request and that I agree to the [Code of Conduct](CODE_OF_CONDUCT.md)
### Overview
Currently all CI jobs are launched at the same time. This gives us the shortest possible compile times, but in cost of CI hours spent on trivial mistakes like missing `;` at the end of a line.
I was wondering whether we could could down CI hours spent on these cases by splitting the CI into 2 (or more?) stages:
1. Only a small subset of the CI would be run. My idea is to have something like newest gcc, clang and nvc++ with newest CTK ran and C++17. After they succeed, the next stage would be launched.
2. The rest of the CI matrix would be ran.
This way we would increase the overall CI run time a bit, but we would be able to catch trivial errors early.
Maybe it would be nice to test also oldest gcc, clang and nvc++ with oldest CTK. That way it would be like 6 runs.
### Details
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.