Получение переменной среды по имени в Jenkins

#jenkins #jenkins-plugins #jenkins-template-engine

#Дженкинс #Дженкинс-плагины #jenkins-движок шаблонов

Вопрос:

Я использую механизм шаблонов Jenkins и сталкиваюсь со следующей проблемой:

Допустим, я хочу иметь библиотечный шаг, который загружает артефакты в Artifactory. На этом шаге следует установить в качестве свойства URL-адрес коммита git. Я хочу, чтобы каждый проект предоставлял этот URL-адрес в pipeline_config.groovy файле, а не жестко запрограммированный на шаге.

Дело в том, что этот URL состоит из некоторой фиксированной строки плюс динамическое значение, а именно env.GIT_COMMIT : например: http://specific-server.com/project/${env.GIT_COMMIT}

В конце концов, я хочу, чтобы шаг был следующим:

 // upload.groovy

def call() {
   def props = config.git_url
}
  

и файл pipeline_config:

 // pipeline_config.groovy

libraries {
  artifactory
  {
     git_url = "http://specific-server/project/${env.GIT_COMMIT}"
  }  
}
  

Итак, вопрос сводится к следующему: Как я могу поручить этапу библиотеки восстановить некоторую динамическую переменную из файла pipeline_config.groovy?

@steven-terrana

Комментарии:

1. У меня нет опыта работы с шаблоном, но может ли шаг загрузки работать для вас?

2. Не думаю, что так.. Этот метод оценивает сценарий в файле в рабочей области. Это не так.. Хотя спасибо

Ответ №1:

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

Если GIT_COMMIT поступает из создаваемого проекта, вы можете определить эту информацию на этапе библиотеки, используя git cli, а затем объединить базовый URL, предоставленный из конфигурации конвейера.