Получить журнал для каждого этапа конвейера Jenkins

Кто-нибудь знает, как я могу получить отдельные журналы (для каждого этапа конвейера), как показывает Blue Ocean. Мне нужно прикрепить их к Jira, но я не могу их найти. Есть идеи?

введите описание изображения здесь


person Alessandra Dias    schedule 23.11.2018    source источник


Ответы (2)


Я делаю то же самое с глобальной конвейерной библиотекой, которую я создаю. Это хорошо для случаев, когда вы просто хотите отправить по электронной почте журналы определенного неудачного этапа. Вот как надеюсь, что это поможет. В приведенном ниже примере конвейера задание с именем test выполняется один раз (build #1)

Sample pipeline

    pipeline {
        agent any
        stages{
            stage("Compile") {
                steps {
                    script {
                        echo "Compiling..."
                    }
                }
            }
            stage("Test") {
                steps {
                    script {
                        echo "Testing..."
                    }
                }
            }
            stage("Build") {
                steps {
                    script {
                        echo "Building..."
                    }
                }
            }
        }
    }
    

  1. Получите доступ к 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
        }
    ]
    
  2. Используйте result для проверки состояния этапа (SUCCESS, FAILED, ABORTED и т. д.).

  3. Используйте id, чтобы перейти к определенному этапу, например, к журналам тестового этапа, который имеет id из 15.

    http://localhost:8080/blue/rest/organizations/jenkins/pipelines/test/runs/1/nodes/15/log/

    Testing...
    
person Quirino Gervacio    schedule 24.11.2018

вы можете найти остальную часть 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.

person Nagle Zhang    schedule 12.10.2020