Совместно используемый GitLab: последовательные конвейерные сборки - PullRequest
0 голосов
/ 14 февраля 2019

В прошлом году я настроил несколько CI для Java-проектов моей компании на GitLab.Мы используем общий раннер, который выполняет несколько этапов для каждого конвейера проекта.Это сработало хорошо, но по нескольким непредвиденным причинам нам пришлось некоторое время его тестировать.

Пример заказа на GitLab и как это работает (простые этапы с проектами Java Maven):

  • Проект A: Выполнить тесты (конвейер 1, задание 1)
  • Проект A: Развернуть банку на артефакте (конвейер 1, задание 2)
  • Проект B: Выполнить тесты (конвейер 2), Задание 3)
  • Проект B: Развертывание jar на артефакте (Конвейер 2, Задание 4)

Я недавно поднял его, и похоже, что после определенного обновления GitLabповедение немного изменилось - конвейер больше не выполняется в указанном выше порядке.Я провел некоторое исследование, и я думаю, что это может быть связано с тем, что разделяемый бегун использует «общую очередь использования» (я не думаю, что это было в прошлом году, по крайней мере, в нашей версии) - https://docs.gitlab.com/ee/ci/runners/#how-shared-runners-pick-jobs

Выполнение теперь выглядит следующим образом:

  • Проект A: запуск тестов (конвейер 1, задание 1)
  • Проект B: запуск тестов (конвейер 2, задание 3)
  • Проект A: Развернуть банку на артефакте (конвейер 1, задание 2)
  • Проект B: Развернуть банку на артефакте (конвейер 2, задание 4)

Thisвозникают проблемы, когда проект B может зависеть от проекта A, и если в Project A были внесены критические изменения API, его необходимо развернуть на артефакте, прежде чем Project B начнет выполнять свои тесты.

Я пытался изменитьнастройки в gitlab-runner config.toml, например, убедитесь, что параллельные сборки отключены, но, похоже, ничего не помогло.

Я также попытался переименовать фазы из 'test' & 'deploy' в другиеслучайные слова, чтобы убедиться, что это не группировка фаses вместе с одним и тем же именем из разных конвейеров.

Мне интересно, есть ли способ отключить «общую очередь использования» общего бегуна и иметь конвейеры, выполняемые последовательно в порядке их номера задания?

...