Лучший способ вызвать переменную внутри jenkins groovy

Я написал разделяемую библиотеку в groovy, которая используется многими другими декларативными заданиями Jenkins. Эти задания используют эту функцию общей библиотеки и передают необходимые значения, которые затем будут загружены в общую библиотеку при запуске функции.

Здесь переменная APP_NAME должна быть передана пользователем, а затем загружена в функцию общей библиотеки.

  1. New_APP="${APP_NAME} Это не работает и возвращает null
  2. New_APP=this.APP_NAME Это работает

На самом деле, оба должны работать, так как это классно, но, похоже, работает только второй случай. Есть идеи, почему?


person Kreddy    schedule 06.12.2018    source источник
comment
Просто чтобы уточнить, в 1 вы используете APP_NAME, а во 2 вы используете APPL_NAME (с буквой L). Это была просто опечатка?   -  person Daniel    schedule 07.12.2018
comment
@ Даниэль Да, это была опечатка, и я ее исправил.   -  person Kreddy    schedule 07.12.2018


Ответы (1)


Это действительно зависит от того, как вы используете свою общую библиотеку. Например, вот как я использую свою общую библиотеку

@Library('flowci') _
  io.k8s.flow.FlowPipeline.builder(this, 'flowci', label)

            .buildDefaultPipeline()

            .execute()

}

Как видите, я передаю такие параметры, как This и label, у меня нет никаких проблем. Контекст сохраняется, и оттуда я могу получить доступ ко всем возможностям плагинов Jenkins.

person Chen    schedule 08.12.2018