Дженкинс файл мы можем использовать оператор IF - PullRequest
0 голосов
/ 23 января 2020

в файле Jenkins одна из переменных имеет значения, разделенные запятыми, как показано ниже.

infra_services = [ab c, def, xyz]

когда Я пишу код ниже, он выдавал ошибку.

if ("{$Infra_Services}".contains("xyz"))
    then
 echo "$Infra_Services"
fi

1 Ответ

1 голос
/ 23 января 2020

да, вы можете сделать, если заявления в Jenkinsfile. Однако, если вы используете декларативный конвейер, вам нужно закрепить его с шагом script.

Ваша проблема связана с тем, что вы не поставили двойные кавычки вокруг "ab c" и всех элементов ваш массив

infra_services=[abc,def,xyz]

Вторая ошибка возникнет после того, как вы исправите это. Если infra_services является массивом, для манипулирования им не следует пытаться приводить его как строку. Он должен выдавать, когда вы делаете "{$ Infra_Services}"

, вот рабочий пример

​def Infra_Services = ["abc","def","xyz"]

if (Infra_Services.contains("xyz")) {
   println "found"
}​​

Мой совет: протестируйте ваш groovy перед запуском его на Дженкинсе, вы получите драгоценное время. Вот хорошая онлайн groovy консоль, которую я использую для тестирования своего кода. запуск консоли groovy с терминала является альтернативой

https://groovyconsole.appspot.com/

...