Currently, we run all "short" integration tests per server version.
There is no need to run all the short test suite per commit, most of the driver functionality doesn't vary by server version. By separating groups of tests into tags, we could speed up significantly the build (maybe from 1h to 40m on the DSE driver side and from 30 mins to probably 15 minutes on the OSS side) while using less hardware resources per commit.
This new dimension in the CI matrix could be separated into:
Simple: all except the ones below.
Complex: pool tests, error tests, load balancing tests, execution profile tests, graph timeout tests, graph olap, control connection tests.
Simulated: simulacron-based tests.
Mocha has a way to deal with tags: https://github.com/mochajs/mocha/wiki/Tagging
It's not very elegant but its good enough to do the job.
We could use the "simple" category for the server smoke tests NODEJS-519.