Как я могу манипулировать строкой в ​​разделе среды декларативного конвейера Jenkins? - PullRequest
0 голосов
/ 09 сентября 2018

Вот структура моего трубопровода:

def call(String microservice_param) {

pipeline {
    environment {
        MICROSERVICE_NAME = "${microservice_param}".split("-")[1]
    }
}

Я хотел бы манипулировать строковым параметром, как показано выше, но я получаю эту ошибку: Environment variable values can only be joined together with ‘+’s.

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 30 октября 2018

Хотя мне не нравится мое собственное решение, оно работает: определите новую переменную и установите ее перед блоком конвейера и используйте в своей среде.

def call(String microservice_param) {
  def microserv_name = microservice_param.split("-")[1]
  pipeline {
    environment {
    MICROSERVICE_NAME = "${microserv_name}"
    }
  .
  .
  .
  }
}

Не найденолучшее решение - возможно, кто-то предоставит это здесь.Предполагая, что вы будете использовать больше параметров, вы создадите новую переменную для каждого и будете использовать ее в директиве Environment.Мы делаем это для использования в декларативном коде конвейера совместно используемой библиотеки, но используем параметр Map для параметра вызова.

...