Я пытаюсь преобразовать старые задания Jenkins в декларативный конвейерный код.
При попытке использовать параметр выбора в сценарии я реализую функцию, которая должна возвращать обновленные значения, если значения не самыепоследние - работа не удастся.
Проблема в том, что после первой сборки, которая выглядит нормально, значения остаются неизменными, после чего они не обновляются, что, как я уже говорил выше, проваливает мою работу.Это похоже на написанную мной функцию, которая запускается только один раз при первой сборке и больше никогда не запускается.
Я попытался написать код таким образом, чтобы вывод был отправлен в файл и былчитать из него - таким образом, возможно, функция будет обновлена путем получения текста из файла - это не сработало.
Я пытался просмотреть документацию Jenkins / множество других тем и не смогнайти вещь.
Мой код выглядит следующим образом:
def GetNames() {
def workspace = "..."
def proc = "${workspace}/script.sh list".execute()
return proc.text
}
$ {workspace} - это просто мое рабочее пространство, не имеет значения.
script.sh - скрипт, который на 100% работает и проверен
return proc.text - возвращает значения, я проверял его в моем JenkinsРаздел сайта / скрипта и значения возвращаются правильно и обновляются.
Раздел моих параметров:
parameters {
choice(name: 'Names', choices: GetNames(), description: 'The names')
}
Первая сборка Я получаю 5 имен, что хорошо, потому что это обновленные значения, секундыСборка Я знаю, что есть 10 значений, но я все еще получаю 5 из ранее, и каждая сборкапосле того, как я все равно получу те же 5 имен - они вообще не обновляются, функция не запускается снова.
Кажется, что это очень долго работающая проблема, которая до сих пор не была исправленаединственный упомянутый поток был следующим: динамические декларативные параметры конвейера Jenkins , но решение в сценарии, а не в декларативной форме.