Изменение переменной удаляет другую переменную в скрипте Jenkins groovy - PullRequest
0 голосов
/ 05 марта 2020

Я использую бесплатное задание в Jenkins, которое имеет 2 параметра, которые пользователь может изменить при запуске:

  • ReleaseBuild - логическое
  • PluginVersion - строка

Я использую system groovy script , чтобы прочитать изменение переменных

Сначала я прочитал содержимое ReleaseBuild:

def isRelease = build.buildVariableResolver.resolve("ReleaseBuild").toString();
println "Is ReleaseBuild: " + isRelease

В выходных данных отображается правильное значение: Is ReleaseBuild: true

Мне нужно заменить содержимое второй переменной:

def verParameter = new StringParameterValue('PluginVersion', '1.0')
build.addOrReplaceAction(new ParametersAction(verParameter))

Теперь я проверяю содержимое ReleaseBuild снова переменная:

def isStillRelease = build.buildVariableResolver.resolve("ReleaseBuild").toString();
println "Is ReleaseBuild: " + isStillRelease 

Теперь переменная, похоже, исчезла. Вывод: Is ReleaseBuild: null

Как мне изменить содержимое PluginVersion без удаления переменной ReleaseBuild?

1 Ответ

0 голосов
/ 16 марта 2020

Тем временем я решил свою проблему с помощью обходного пути :
Когда я хочу обновить значение, я обновляю все значения (это нормально, поскольку у меня только два)

def verParameter = new StringParameterValue('PluginVersion', ver)
def relParameter = new BooleanParameterValue('ReleaseBuild', isRelease)
build.addOrReplaceAction(new ParametersAction(verParameter, relParameter))

Все еще надеемся найти лучшее решение, но, по крайней мере, оно работает.

...