Кто-нибудь знает, как я могу получить отдельные журналы (для каждого этапа конвейера), как показывает Blue Ocean. Мне нужно прикрепить их к Jira, но я не могу их найти. Есть идеи?
Получить журнал для каждого этапа конвейера Jenkins
Ответы (2)
Я делаю то же самое с глобальной конвейерной библиотекой, которую я создаю. Это хорошо для случаев, когда вы просто хотите отправить по электронной почте журналы определенного неудачного этапа. Вот как надеюсь, что это поможет. В приведенном ниже примере конвейера задание с именем test
выполняется один раз (build #1
)
pipeline { agent any stages{ stage("Compile") { steps { script { echo "Compiling..." } } } stage("Test") { steps { script { echo "Testing..." } } } stage("Build") { steps { script { echo "Building..." } } } } }
Получите доступ к API, чтобы увидеть подробности выполнения. Обратите внимание, что каждый объект этого JSON включает атрибуты
id
иresult
. http://localhost:8080/blue/rest/organizations/jenkins/pipelines/test/runs/1/nodes/[ { *snip* "actions": [], "displayDescription": null, "displayName": "Compile", "durationInMillis": 341, "id": "6", "input": null, "result": "SUCCESS", "startTime": "2018-11-24T18:14:16.196+0800", "state": "FINISHED", "type": "STAGE", "causeOfBlockage": null, "edges": [ { "_class": "io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl", "id": "15", "type": "STAGE" } ], "firstParent": null, "restartable": true }, { *snip* "actions": [], "displayDescription": null, "displayName": "Test", "durationInMillis": 246, "id": "15", "input": null, "result": "SUCCESS", "startTime": "2018-11-24T18:14:16.693+0800", "state": "FINISHED", "type": "STAGE", "causeOfBlockage": null, "edges": [ { "_class": "io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl$EdgeImpl", "id": "24", "type": "STAGE" } ], "firstParent": "6", "restartable": true }, { *snip* "actions": [], "displayDescription": null, "displayName": "Build", "durationInMillis": 270, "id": "24", "input": null, "result": "SUCCESS", "startTime": "2018-11-24T18:14:17.188+0800", "state": "FINISHED", "type": "STAGE", "causeOfBlockage": null, "edges": [], "firstParent": "15", "restartable": true } ]
Используйте
result
для проверки состояния этапа (SUCCESS
,FAILED
,ABORTED
и т. д.).Используйте
id
, чтобы перейти к определенному этапу, например, к журналам тестового этапа, который имеетid
из15
.http://localhost:8080/blue/rest/organizations/jenkins/pipelines/test/runs/1/nodes/15/log/
Testing...
вы можете найти остальную часть API-документа по этому URL-адресу:
https://github.com/jenkinsci/blueocean-plugin/tree/master/blueocean-rest
все еще нужно заметить это в своем документе.
The Blue Ocean REST API is a "private API" designed for the Blue Ocean user interface.
It may change without notice at any time.