2016-07-11 9 views
1

Ist es möglich, und wenn ja: wie ?, um die Protokollausgabe für jeden parallelen Schritt getrennt zu bekommen?Jenkins Pipeline - wie man Protokolle von parallelen Builds bekommt

d.h .:

def projectBranches = [:] 
     for (int i = 0; i < projects.size(); i++) { 
      def _i = i 
      projectBranches[_i] = { 
       someFunction(_i) 
      } 
     } 

     parallel projectBranches 

Ist es nun möglich, das Protokoll für die einzelnen projectBranches [_i] zu bekommen?

+0

prüfen zu bekommen: http://stackoverflow.com/a/37095547/1579623 – izzekil

+0

@izzekil also, wenn ich es richtig mache, gibt es keine "echte" Möglichkeit, auf das separate Protokoll prorammatisch zuzugreifen? – Matthias

+0

oh, ich habe wirklich nicht realisiert, dass Sie programmgesteuert darauf zugreifen müssen. Ich glaube, es sollte über groovy erreichbar sein, ich würde vorschlagen, Pipeline Plugins Code zu studieren, um einen Weg zu finden. – izzekil

Antwort

0

Sie könnten Ihre Knoten, die durch den Einsatz von Jenkins REST API erhalten: Job/test/1/api/json Tiefe = 2

Ergebnis sollte wie enthalten:

{"_class":"org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode","actions":[{},{},{}],"displayName":"Branch: 0","iconColor":"blue","id":"13","parents":["3"],"running":false,"url":"job/test/1/execution/node/13/"}, 
{"_class":"org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode","actions":[{},{},{}],"displayName":"Allocate node : Start","iconColor":"blue","id":"23","parents":["13"],"running":false,"url":"job/test/1/execution/node/23/"}, 
{"_class":"org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode","actions":[{},{}],"displayName":"Allocate node : Body : Start","iconColor":"blue","id":"33","parents":["23"],"running":false,"url":"job/test/1/execution/node/33/"}, 
{"_class":"org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode","actions":[{},{}],"displayName":"Print Message","iconColor":"blue","id":"37","parents":["33"],"running":false,"url":"job/test/1/execution/node/37/"} 

Also für Ihren Fall Sie interessieren sich für das Kind mit dem Typ StepAtomNode Ihrer Zweigstelle mit dem angegebenen Namen (0-9 für diesen Fall). Von diesem können Sie die Konsolenausgangsadresse erhalten, indem Sie einfach log zu der Adresse hinzufügen (wie: job/test/1/execution/node/37/log).

Nun ist dies, wo es ein bisschen hässlich wird, müssen Sie die HTML analysieren die tatsächliche Protokoll aus dem diese

<pre class="console-output">log here 
</pre> 
+0

Am Ende war es die einzige praktische Lösung für mich, danke. – Matthias

Verwandte Themen