Разве GitLab не поддерживает последовательные конвейеры?

# #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), и назначать задания, которые могут выполняться параллельно первому типу, а другие-второму. И даже есть несколько бегунов, посвященных каким-то специальным проектам. Я не знаю других возможных настроек.