Вы ничего не пропустили. Если вы знаете, что делаете, вам не нужно клонировать репо для каждой стадии вашего конвейера. Если вы установите для переменной GIT_STRATEGY
значение none
, ваши тестовые задания или что-то еще, они будут выполняться быстрее, и вы можете просто запускать команды Docker Pull и необходимые вам тесты. Просто убедитесь, что вы используете правильные образы докеров, даже если вы запускаете много параллельных заданий. Например, вы можете использовать CI_COMMIT_REF_NAME
как часть имени образа докера.
Что касается того, почему GitLab по умолчанию использует git clone, я предполагаю, что это наименее удивительное поведение. Если вы представите кого-то новичка в GitLab и новичка в CI, им будет намного легче начать работу, если каждая работа просто клонирует весь репозиторий. Вы также должны помнить, что не все создают образы докеров на своих рабочих местах. Я полагаю, что наиболее распространенный способ настройки - либо с языками программирования, которые не нужно компилировать, например, python
, либо с заданием build
, которое создает двоичные файлы, а затем * 1008. * Работа, которая запускает двоичные файлы. Затем они могут использовать artifacts
для отправки двоичных файлов из задания сборки в тестовое задание.
Это просто и работает. Когда люди понимают, что большая часть их тестовых заданий тратится только на клонирование репозитория, они могут изучить, как изменить GIT_STRATEGY
, и сделать другие вещи для оптимизации их конкретной сборки.