Существует проект, который имеет множество тестов, и их запуск занимает около 20 минут. К сожалению, невозможно провести параллель с ними внутри одного gitlab runner. Интересно, есть ли какие-нибудь хорошие практики для запуска нескольких бегунов gitlab с той же средой, но с различными тестовыми костюмами?Возможно ли использовать несколько gitlab-бегунов для одной сборки CI?
ответ
Если вы можете разбить тестовый костюм на несколько частей, вы можете создать равное количество заданий на одном и том же этапе (test). Работа на той же стадии выполняется параллельно, но задания на следующем этапе начнутся после завершения работ на предыдущем этапе. Они будут работать параллельно, даже если у вас есть только один бегун. Давайте предположим, что этот тестовый пример:
stages:
- test
testsA:
stage: test
script:
- sleep 60
- echo 'Test set A done'
testsB:
stage: test
script:
- sleep 30
- echo 'Test set B done'
Вы увидите, что они работают в то же время и тест А завершит после испытания B.
Отрегулируйте направляющие settings (/и т.д./gitlab- бегун/config.toml) проверка на 2-х вариантов:
concurrent
= общее количество заданий, выполняемых параллельно во всех бегуновlimit
(набор для каждого бегуна) = число рабочих мест работать параллельно с одним конкретным бегуна
Примечание: я не проверил, если проект с несколькими бегунов, каждый из которых имеет limit
значение 1, будет запускайте эти задания с помощью разных участников. Однако я полагаю, что это работает.
Спасибо, что указали опцию 'concurrent', это был сбой в моей конфигурации. – CharlyDelta
Вы можете найти файл в' ~/.gitlab-runner/config.toml' – Caipivara
Когда вы говорите «один сборник CI», вы имеете в виду, что вы можете разбить тестовый костюм на несколько частей или нет? – tmt
@cascaval да, я имею в виду, что когда я нажимаю изменения в gitlab, он должен начать строить тесты в параллельных бегунах. Фактически, я нашел способ сделать это через рабочие места и этапы (http://docs.gitlab.com/ce/ci/yaml/README.html#jobs). Но я думаю, что есть более элегантный способ. – t1maccapp
Вот что я собирался предложить вам, когда я начал писать свой ответ, а затем остановился, потому что не был уверен, не ожидаете ли вы, что одна работа будет выполняться несколькими бегунами с каким-то магическим отличием от того, что каждый из них Предполагалось завершить. Теперь я добавил свой ответ, который также указывает на некоторую конфигурацию, чтобы он работал так, как вы ожидали. – tmt