Дженкинс - вернуть что-то с детской работы
Существует конвейерное задание Дженкинса ("родитель"). Отсюда - на одном этапе вызывается другое конвейерное задание ("дочерний" - с помощью команды сборки задания).
Есть ли способ вернуть что-то (например, короткий текст) из дочерней в родительскую работу, не используя внешние службы, такие как 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