Дженкинс - вернуть что-то с детской работы

Существует конвейерное задание Дженкинса ("родитель"). Отсюда - на одном этапе вызывается другое конвейерное задание ("дочерний" - с помощью команды сборки задания).

Есть ли способ вернуть что-то (например, короткий текст) из дочерней в родительскую работу, не используя внешние службы, такие как artificatory, и не предполагая, что родительская и дочерняя работа находятся на одном компьютере?

1 ответ

Один из способов сделать это - встроенные артефакты Дженкинса. Мне нравится использовать JSON для этой цели, так как Pipeline имеет встроенную readJSON а также writeJSON методы.

Например, вот как может выглядеть конфигурация из родительского задания:

build job: "myproject", wait: true

step([
  $class: 'CopyArtifact',
  filter: 'mydata.json',
  projectName: "myproject",
])

if (fileExists("mydata.json")) {
  mydata = readJSON file: "mydata.json"
  myvalue = mydata.mykey
}

И тогда работа вашего ребенка должна будет написать mydata.json файл в хранилище артефактов где-то в его конфигурации задания конвейера, например:

mydata = [mykey: 'myvalue']
writeJSON file: 'mydata.json', json: mydata

archiveArtifacts artifacts: 'mydata.json', onlyIfSuccessful: true
Другие вопросы по тегам