jenkins - вернуть что-то из дочернего задания

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

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

0
задан 7 November 2017 в 00:30
1 ответ

Eine Möglichkeit, dies zu tun, sind die in Jenkins integrierten Artefakte. Ich verwende JSON gerne für diesen Zweck, da die Pipeline die Methoden readJSON und writeJSON integriert hat.

So könnte beispielsweise die Konfiguration des übergeordneten Jobs aussehen:

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
}

Und dann müsste Ihr untergeordneter Job die Datei mydata.json in den Artefaktspeicher irgendwo in seiner Pipeline-Jobkonfiguration schreiben, z. B.:

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

archiveArtifacts artifacts: 'mydata.json', onlyIfSuccessful: true
2
ответ дан 4 December 2019 в 13:29

Теги

Похожие вопросы