Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Как запустить группу тестов в зависимости от String parameter?

jenkins
Теги: #<Tag:0x00007f7b621f5100>

(Sergey Obruch) #1

Добрый день

Может кто-то подскажет плагин для Дженкинса, который бы помог выполнить след таск:

В дженкинс джобе находится String parameter. Необходимо его обработать регулярным выражением и в зависимости от результата запустить ту или иную группу тестов.

Пример:
String 373f031/t320/003/f/cs_3p_a003 содержит /f/ – запустить группу тестов 1
String 373f031/t420/186/lp/186-32bd/ содержит /lp/ – запустить группу тестов 2

Строк бесконечное кол-во, а групп тестов ~5 всего. Каким образом можно это реализовать? Буду благодарен любому совету


(Sergey Korol) #2

Вы как минимум забыли указать язык / unit framework, с которыми работаете. :wink:
А распрарсить только скриптом, например groovy, в качестве прекондишена билду.


(Павел) #3

с помощью плагина EnvInject парсите свой стринг параметр груви скриптом. Потом в post build actions добавляете шаг Flexible publish с условием String match и действием “Trigger parameterized build on other projects”. Проще всего сделать 5 условий String match для каждой группы, т.к. у дженкинса есть баг с передачей значения переменной в поле “Projects to build”.


Пример evaluated groovy script для EnvInject шага для 2 возможных групп:

def pattern1 = /^.+/f/.+$/
def pattern2 = /^.+/lp/.+$/
def groups = [GROUP1: pattern1 , GROUP2: pattern2]
def selectedGroup = groups.find { MY_PARAM1 =~ it.value}?.key ?: ‘none’
return [GROUP: selectedGroup]

тогда у вас будет env переменная GROUP з возможными значениями GROUP1, GROUP2 или none (в зависимости от значения параметра MY_PARAM1)