Зависит от кучи параметров, на самом деле - количества тестов, их распределения по времени прогона, частоты изменений в кодовой базе, требований к частоте релизов.
Если те же 8 минут на юнит тесты для команды вполне норм (а это весьма быстро), то можно запускать их на любой коммит. А вот если тесты долго работают, или есть тяжёлые/требующие кучи действий для подготовки окружения, типа интеграционных или e2e тестов, то скорее всего стоит их запускать непосредственно перед релизом, а в коммитах запускать исключительно юнит тесты.
Если у проекта есть требования обеспечивать совместимость с разными версиями зависимостей или версиями фреймворка/языка, то обычно это решается матричной сборкой, когда все необходимые комбинации запускаются в параллель. Если какие-то исключительно редкие или тяжёлые, то как и в случае с другими тяжёлыми тестами их можно прогонять непосредственно перед релизом