У нас время прохождения pipeline в gitlab-ci не так давно дошло до часа и даже перевалило эту величину.
Пришлось разбираться как ускорить, смотреть узкие места и возможные оптимизации.
В моём случае, самые узкие места были npm install, gulp и docker build. Точные цифры сейчас не помню, но от 7 до 20 минут занимали некоторые jobs. Ну а npm install необходим на нескольких последовательных шагах: линтерах, тестах, сборкой исходников для образов и т.д. Кумулятивно это давало 60-80 минут на все шаги.
Решил тем что:
- перешли с npm на yarn - в несколько раз быстрее отрабатывает.
- сборку gulp и docker распараллели где возможно, увеличив кол-во раннеров
Сократили до 15 минут.