Я много раз просматривал эту проблему в Google и не нашел ничего, что помогло бы решить мою проблему.
Я пытаюсь проанализировать вывод консоли задания Jenkins и установить переменную среды. Мне понадобится эта переменная в моем родительском задании, которое будет выполняться на другом ведомом устройстве.
Я мог бы получить нужное строковое значение из вывода консоли, используя
def build = Thread.currentThread().executable
def matcher = manager.getLogMatcher(".*myEnvironemntValue: (.*)")
if(matcher != null && matcher.matches()) {
log('found my value')
myEnvironemntValue= matcher.group(1).substring(0)
def pa = new ParametersAction([
new StringParameterValue("MY_ENV_VALUE", myEnvironemntValue)
])
build.addAction(pa)
manager.addInfoBadge(myEnvironemntValue)
}
Обновлять
У меня есть задание buildflow (родительское задание), из которого я буду вызывать другие дочерние задания с помощью сценария DSL, например,
def b1 = build("child_job1", NODE: node)
def b2 = build("child_job2", NODE: node)
Дочернее задание child_job1
и child_job2
являются многофазными заданиями, они по очереди вызывают другие задания на разных этапах, например phase1_job
, phase2_job
и phase3_job
После того, как задание phase3_job
будет выполнено, я хотел бы получить конкретное значение из его консоли.
Может ли кто-нибудь помочь в решении этой проблемы? Я могу использовать другие плагины, если они помогают мне получить значение консоли и установить его как переменную среды.