7

さまざまな段階のパイプラインがあります。現在のジョブで、前のビルドでいくつのステージが経過したかを確認し、それをコンソールに記録したいですか?

これが私の現在のパイプラインであると考えてください

node(){
 stage "1"
 do something

 stage "2"
 do something else
}

このような何かを与えるには、グルーヴィーなスクリプトが必要です

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

私のコードの目的は、ビルド全体のさまざまな段階で成功と失敗を追跡することです。このアプローチに代わるものはありますか?

4

3 に答える 3

11

Pipeline REST API Pluginを間違いなく使用できます。私にとっては、Jenkins 2.13 でそのまま使用できました。

結果の JSON を解析することで、期待どおりにステージのステータスを取得できます。API 呼び出しには、個人的に http_request プラグインを使用します。

ドキュメントから GET /job/:job-name/:run-id/wfapi/describe は次を返します。

{
    "_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
        }
    ]
}
于 2016-08-10T14:20:30.387 に答える