2016-05-03 21 views
4

Ich habe eine Pipeline mit verschiedenen Stufen. Ich möchte, dass der aktuelle Job überprüft, wie viele Stufen im vorherigen Build vergangen sind, und in der Konsole protokollieren.Access Stage Ergebnisse in Workflow/Pipeline-Plugin

Betrachten Sie diese meine aktuelle Pipeline ist

node(){ 
stage "1" 
do something 

stage "2" 
do something else 
} 

ich ein starkes Skript wie dieses ist

println currentBuild.previousBuild.getStage("1").result 

Der Zweck meines Codes zu geben, meine etwas wollen Erfolge verfolgen & Ausfälle in verschiedenen Stadien über meine baut. Gibt es Alternativen zu diesem Ansatz?

+0

Haben Sie etwas Groovy Code haben, der die Liste der Stadien und deren Ergebnisse bekommt? Irgendwie scheint die Verwendung der REST API wie ein Overkill zu sein. – sorin

Antwort

4

Sie könnten definitiv Pipeline REST API Plugin verwenden, für mich war es aus der Box mit Jenkins 2.13 verfügbar.

Durch Parsing des resultierenden JSON können Sie den Status der Bühne ähnlich wie erwartet erhalten. Für den API Anruf benutze ich http_request Plugin.

Aus der Dokumentation GET/Job /: Job-Name /: run-id/wfapi/beschreiben Rückgabe:

{ 
    "_links": { 
     "self": { 
      "href": "/jenkins/job/Test%20Workflow/16/wfapi/describe" 
     }, 
     "pendingInputActions": { 
      "href": "/jenkins/job/Test%20Workflow/16/wfapi/pendingInputActions" 
     } 
    }, 
    "id": "2014-10-16_13-07-52", 
    "name": "#16", 
    "status": "PAUSED_PENDING_INPUT", 
    "startTimeMillis": 1413461275770, 
    "endTimeMillis": 1413461285999, 
    "durationMillis": 10229, 
    "stages": [ 
     { 
      "_links": { 
       "self": { 
        "href": "/jenkins/job/Test%20Workflow/16/execution/node/5/wfapi/describe" 
       } 
      }, 
      "id": "5", 
      "name": "Build", 
      "status": "SUCCESS", 
      "startTimeMillis": 1413461275770, 
      "durationMillis": 5228 
     }, 
     { 
      "_links": { 
       "self": { 
        "href": "/jenkins/job/Test%20Workflow/16/execution/node/8/wfapi/describe" 
       } 
      }, 
      "id": "8", 
      "name": "Test", 
      "status": "SUCCESS", 
      "startTimeMillis": 1413461280998, 
      "durationMillis": 4994 
     }, 
     { 
      "_links": { 
       "self": { 
        "href": "/jenkins/job/Test%20Workflow/16/execution/node/10/wfapi/describe" 
       } 
      }, 
      "id": "10", 
      "name": "Deploy", 
      "status": "PAUSED_PENDING_INPUT", 
      "startTimeMillis": 1413461285992, 
      "durationMillis": 7 
     } 
    ] 
}