Получить журнал для каждой стадии строительства трубопровода Jenkins - PullRequest
0 голосов
/ 23 ноября 2018

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

enter image description here

1 Ответ

0 голосов
/ 24 ноября 2018

Я делаю то же самое с глобальной библиотекой конвейеров, которую создаю.Это хорошо для случаев, когда вы просто хотите отправить по электронной почте журналы определенного неудачного этапа.Вот как надежда помогает.В примере конвейера ниже задание с именем 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...
    
...