web-dev-qa-db-ja.com

Jenkinsパイプラインステージごとにログを取得する

ブルーオーシャンが示すように、(パイプラインステージごとに)個別のログを取得する方法は誰でも知っています。 Jiraに添付する必要がありますが、見つかりません。何か案が?

enter image description here

7
Alessandra Dias

私が構築しているグローバルパイプラインライブラリでも同じことをしています。これは、特定の失敗したステージのログをメールで送信したい場合に適しています。それがどのように役立つかをここに示します。以下のサンプルパイプラインでは、testという名前のジョブが1回実行されます(build #1

Sample pipeline

パイプライン{
エージェントany 
ステージ{
ステージ( "コンパイル"){
ステップ{
スクリプト{
 echo "コンパイルしています..." 
} 
} 
} 
 stage( "Test"){
ステップ{
スクリプト{
 echo "Testing ..." 
} 
} 
} 
 stage( "Build"){
手順{
スクリプト{
 echo "Building ..." 
} 
} 
} 
} 
 } 
 
  1. 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 
    } 
     
    
  2. resultを使用してステージのステータスを確認します(SUCCESSFAILEDABORTEDなど...)

  3. 特定のステージに入るには、idを使用します。この例では、id15であるTestステージのログです。

    http:// localhost:8080/blue/rest/organizations/jenkins/pipelines/test/runs/1/nodes/15/log /

    テスト中... 
    
2