2016-05-03 4 views
4

私はステージが異なるパイプラインを持っています。私は、現在の仕事で、前のビルドで何段階が経過したのかを確認し、それをコンソールに記録しますか?アクセスステージの結果がワークフロー/パイプラインプラグイン

私は私のコードの目的は、トラックの成功私の間で異なる段階で&の障害である。この

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

のように私の何かを与えるためにグルーヴィーなスクリプトをしたい、これが私の現在のパイプライン

node(){ 
stage "1" 
do something 

stage "2" 
do something else 
} 

で考えてみましょうビルド。このアプローチの代替案はありますか?

+0

あなたはステージとその結果のリストを取得し、いくつかのGroovyコードをお持ちですか?何とかREST APIを使用しているのは残酷なようです。 – sorin

答えて

4

あなたは間違いなくPipeline REST API Pluginを使用することができました.Jenkins 2.13を使ってすぐに利用できました。

結果のJSONを解析することで、期待どおりにステージのステータスを取得できます。 api呼び出しの場合、私は個人的にhttp_requestプラグインを使います。ドキュメントGET /仕事から

/:ジョブ名/:実行ID/WFAPIを/リターンを説明します。

{ 
    "_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 
     } 
    ] 
}