Get Log for each Jenkins pipeline stage
Asked Answered
T

2

12

Anyone know how I can get the separate logs (for each pipeline stage) as the Blue Ocean shows. I need to attach them to Jira but I can not find them. Any idea?

enter image description here

Tiddlywinks answered 23/11, 2018 at 9:48 Comment(0)
A
5

I'm doing the same thing with the global pipeline library I'm building. This is good for cases where you just want to email the logs of a particular failed stage. Here's how hope it helps. On the sample pipeline below a job named test is executed once (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. Access the API to see execution details. Notice that each object of this JSON includes the attributes id and 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. Use result to check the status of a stage (SUCCESS, FAILED, ABORTED, etc...)

  3. Use id to get into a particular stage, for this example the logs of Test stage which has an id of 15.

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

    Testing...
    
Almatadema answered 24/11, 2018 at 10:51 Comment(0)
L
0

you can find the rest api document through this url:

https://github.com/jenkinsci/blueocean-plugin/tree/master/blueocean-rest

still need to notice this in their document.

The Blue Ocean REST API is a "private API" designed for the Blue Ocean user interface. 
It may change without notice at any time.

Loftis answered 12/10, 2020 at 9:54 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.