Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get stdout and stderr from single Jenkins Pipeline parallel blocks?

I'm using a parallel block into my Jenkinsfile to execute concurrently some tests, but all the outputs are getting mixed up.

This is an extract of my Jenkinsfile, as an example:

// do some IT against different databases
stage name: 'IT'

parallel (
    mysqlIT: {
        node {
            executeMysqlIT()
        }
    },
    oracleIT: {
        node {
            executeOracleIT()
        }
    }
)

Please note that, as suggested here I'm running a new node within each parallel, so they get properly parallelized and each of them gets its own workspace.

What should I do to have Jenkins show me separated outputs for the parallel blocks?

like image 302
Federico Bonelli Avatar asked May 05 '16 10:05

Federico Bonelli


1 Answers

On the build page of your job there is a link "Pipeline steps" on the left. There in the tree-like structure you can find all the steps that your job has run including parallel ones. You can go inside of every step and access its console log using the link on the left. Alternatively you can use a "terminal" icon on the right in the same row.

Click it and you will see the console log which solely produced within that step without any intermixing with other steps running simultaneously. If a step or several parallel steps are still in progress their logs will be dynamically updated on each of their console log pages.

like image 113
izzekil Avatar answered Sep 29 '22 19:09

izzekil