Gitlab CI: запуск одного и того же набора тестов на нескольких машинах

В высокопроизводительных вычислениях крайне важно протестировать код на множестве различных архитектур/компиляторов: от ноутбука до суперкомпьютера.

Предполагая, что у нас есть

  • N тестовые машины/воркеры (каждая из которых работает gitlab-ci-runner);
  • M тестов,

Какой должна быть правильная компоновка .gitlab-ci.yml, чтобы убедиться, что each из N машин выполняет все тесты?

Мне кажется, что добавление большего количества рабочих приводит к round-robin подобному распределению рабочих мест.

Спасибо за вашу помощь.


person Acorbe    schedule 07.03.2016    source источник


Ответы (1)


Вы можете использовать теги в вашем .gitlab-ci.yml и на бегунах, чтобы распространять свои тесты на все машины, которые вы хотите. Gitlab CI очень открыт для таких вариантов использования. Я предполагаю, что вы не используете докер для тестирования.

Для достижения цели выполните следующие действия:

  1. Установите свои gitlab-ci-multi-runners на свои N машины, НО, если бегун запрашивает у вас теги, пометьте машину конкретным именем, например. «Машина со многими процессорами, что угодно». Для этого используйте команду gitlab-ci-multi-runner register. В качестве альтернативы вы можете изменить теги в Gitlab в административном представлении после регистрации. Тип бегунов должен быть «общим», а не «конкретным».

введите здесь описание изображения

  1. Когда вы установили и пометили каждого бегуна на своих машинах, пометьте свои рабочие места. Пример:

введите здесь описание изображения

Каждое задание теперь будет выполняться на конкретной машине с определенным тегом. Дополнительную информацию см. в документации Gitlab CI.

person Rubinum    schedule 24.03.2016
comment
привет, я в итоге сделал именно так. - person Acorbe; 24.03.2016