# #gitlab #gitlab-ci #gitlab-ci-runner
Вопрос:
Я искал способ предотвратить параллельное выполнение нескольких конвейеров для нескольких коммитов и/или ветвей. Из-за использования внешних ресурсов для нас невозможно запускать конвейеры параллельно, но я не смог найти способ указать ограничение на последовательный запуск.
Похоже, это фундаментальная функция, которая не поддерживается из коробки, кажется, так что я что-то упускаю ?
Создание специального бегуна для каждого из более чем 100 проектов также не кажется разумным «решением».
Ответ №1:
Если вы запускаете выделенный GitLab runner, вы можете управлять количеством параллельно выполняемых заданий, установив ключ concurrent
в глобальном разделе файла конфигурации /etc/gitlab-runner/config.toml
:
concurrent = 1
check_interval = 10
Комментарии:
1. В дополнение к вышесказанному, вы также можете использовать «Автоматическое отключение избыточных трубопроводов» в конфигурации CI/CD проекта для отмены трубопровода, если создается второй трубопровод в той же ветви. Чтобы это сработало, ваши рабочие места должны быть
interruptable:true
настроены на них.2. Похоже, таким образом, я был бы ограничен либо настройкой более 100 бегунов, по одному для каждого проекта, либо выполнением ВСЕХ заданий последовательно, независимо от проекта, верно ?
3. Вы можете
tag
использовать группы бегунов, как, скажем, легкие (одновременное > 1) и тяжелые (одновременное значение равно 1), и назначать задания, которые могут выполняться параллельно первому типу, а другие-второму. И даже есть несколько бегунов, посвященных каким-то специальным проектам. Я не знаю других возможных настроек.