Дженкинс: дроссель строится на разных узлах - PullRequest
0 голосов
/ 11 февраля 2020

У меня довольно сложная тестовая установка с 16 тестируемыми устройствами. Тесты запланированы Дженкинсом и проводятся в основном рандомизированными. У меня есть один раб Дженкинс на тестовое устройство, ie 16 рабов Дженкинс. В новом тестовом сценарии (например, test_scenarion_100) я выполняю тест на одном тестовом устройстве (например, на jenkins_slave_1) и оцениваю результат на другом тестовом устройстве, который назначен другому jenkins_slave (например, jenkins_slave_2). Мне удалось управлять оборудованием jenkins_slave_2 из jenkins_slave_1, но у меня есть несколько проблем:

  1. Как я могу зарезервировать jenkins_slave_2, когда test_scenario_100 работает на jenkins_slave_1, чтобы никакая другая работа jenkins не мешала и не запускалась на jenkins_slave_2 тем временем?
  2. Как я могу проверить, свободен ли jenkins_slave_2 до запуска test_scenario_100 на jenkins_slave_1, чтобы он не прерывал работу, которая уже может выполняться на jenkins_slave_2?

I я уже пробовал плагин Lockable Resources, в котором я определил блокируемые ресурсы с именами узлов, а затем попытался передать env.NODE_NAME в качестве ресурса, который нужно заблокировать, но это не сработало.

Я также попытался использовать плагин Throttle Concurrent Builds но это позволяет только ограничивать сборки на узел. Это могло бы сработать, если бы я мог ограничивать сборки по меткам, но это не представляется возможным. (Я использую отдельные узлы для каждого тестового устройства для установки аппаратных переменных среды c, так как наличие двух устройств в качестве двух исполнителей под одним узлом, похоже, не сработает)

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

...