私が構築しているグローバルパイプラインライブラリでも同じことをしています。これは、特定の失敗したステージのログをメールで送信したい場合に適しています。それがどのように役立つかをここに示します。以下のサンプルパイプラインでは、test
という名前のジョブが1回実行されます(build #1
)
パイプライン{ エージェントany ステージ{ ステージ( "コンパイル"){ ステップ{ スクリプト{ echo "コンパイルしています..." } } } stage( "Test"){ ステップ{ スクリプト{ echo "Testing ..." } } } stage( "Build"){ 手順{ スクリプト{ echo "Building ..." } } } } }
APIにアクセスして実行の詳細を確認します。このJSONの各オブジェクトには、属性id
およびresult
が含まれていることに注意してください。 http:// localhost:8080/blue/rest/organizations/jenkins/pipelines/test/runs/1/nodes /
{ * snip * "actions":[]、 "displayDescription":null、 "displayName ":"コンパイル "、 " durationInMillis ":341、 " id ":" 6 "、 " input ":null、 " result ": "SUCCESS"、 "startTime": "2018-11-24T18:14:16.196 + 0800"、 "state": "FINISHED"、 "type": " STAGE "、 " causeOfBlockage ":null、 " edges ": { " _class ":" io.jenkins.blueocean.rest.impl。 pipeline.PipelineNodeImpl $ EdgeImpl "、 " id ":" 15 "、 " type ":" STAGE " } 、 "firstParent":null、 "restartable":true }、 { * snip * "actions":[]、 "displayDescription":null、 "displayName": "Test"、 "durationInMillis":246、 "id": "15"、 "input":null、 "result": "SUCCESS"、 "startTime": "2018-11-24T18:14:16.693 + 0800"、 "state": "FINISHED"、 "type": "STAGE"、 "causeOfBlockage":null、 "edges": { "_class": "io.jenkins.blueocean.rest.impl.pipeline.PipelineNodeImpl $ EdgeImpl"、 "id": "24"、 "type": "STAGE" } 、 "firstParent": "6"、 "restartable":true }、 { * snip * "actions":[]、 "displayDescription":null、 "displayName": "Build"、 "durationInMillis ":270、 " id ":" 24 "、 " input ":null、 " result ":" SUCCESS "、 " startTime ": "2018-11-24T18:14:17.188 + 0800"、 "state": "FINISHED"、 "type": "STAGE"、 "causeOfBlockage": null、 "edges":[]、 "firstParent": "15"、 "restartable":true }
result
を使用してステージのステータスを確認します(SUCCESS
、FAILED
、ABORTED
など...)
特定のステージに入るには、id
を使用します。この例では、id
が15
であるTestステージのログです。
http:// localhost:8080/blue/rest/organizations/jenkins/pipelines/test/runs/1/nodes/15/log /
テスト中...