一覧に戻る
    【Jenkins】Pipeline REST API でステージ情報を取得する
    CI/CD
    PRこの記事には広告が含まれています

    【Jenkins】Pipeline REST API でステージ情報を取得する

    (更新日: 2025/11/6)
    28 分で読める

    はじめに

    こんにちは株式会社TIELECのタカシユウトです。この記事ではJenkinsのPipeline REST APIについて紹介します。Pipeline REST APIを使うことで、パイプラインのステージやビルド情報を詳細に取得できます。

    Pipeline REST API

    https://github.com/jenkinsci/pipeline-stage-view-plugin/tree/master/rest-api

    パイプラインジョブの情報を取得することができるAPIです。

    パイプラインジョブのURLの後ろに/wfapi をつけると色々情報が取ます。

    ジョブの情報取得

    Remote access APIと同じように 03_write_fileのジョブの情報をみてみます。 http://jenkins.tielec.blog:8080/job/decrative-pipeline/job/03_write_file/wfapi/

    { 
       "_links":{ 
          "self":{ 
             "href":"/job/decrative-pipeline/job/03_write_file/wfapi/describe"
          },
          "runs":{ 
             "href":"/job/decrative-pipeline/job/03_write_file/wfapi/runs"
          }
       },
       "name":"03_write_file",
       "runCount":5
    }

    エンドポイントのパスが出てきました。

    wfapi/runs を見てみます。

    http://jenkins.tielec.blog:8080/job/decrative-pipeline/job/03_write_file/wfapi/runs

    Jsonをクリックで展開します

    [
       { 
          "_links":{ 
             "self":{ 
                "href":"/job/decrative-pipeline/job/03_write_file/17/wfapi/describe"
             },
             "changesets":{ 
                "href":"/job/decrative-pipeline/job/03_write_file/17/wfapi/changesets"
             }
          },
          "id":"17",
          "name":"#17",
          "status":"SUCCESS",
          "startTimeMillis":1567136586348,
          "endTimeMillis":1567136633687,
          "durationMillis":47339,
          "queueDurationMillis":11,
          "pauseDurationMillis":0,
          "stages":[ 
             { 
                "_links":{ 
                   "self":{ 
                      "href":"/job/decrative-pipeline/job/03_write_file/17/execution/node/6/wfapi/describe"
                   }
                },
                "id":"6",
                "name":"Declarative: Checkout SCM",
                "execNode":"",
                "status":"SUCCESS",
                "startTimeMillis":1567136630725,
                "durationMillis":2430,
                "pauseDurationMillis":0
             },
             { 
                "_links":{ 
                   "self":{ 
                      "href":"/job/decrative-pipeline/job/03_write_file/17/execution/node/13/wfapi/describe"
                   }
                },
                "id":"13",
                "name":"write file",
                "execNode":"",
                "status":"SUCCESS",
                "startTimeMillis":1567136633197,
                "durationMillis":469,
                "pauseDurationMillis":0
             }
          ]
       },
       { 
          "_links":{ 
             "self":{ 
                "href":"/job/decrative-pipeline/job/03_write_file/16/wfapi/describe"
             }
          },
          "id":"16",
          "name":"#16",
          "status":"SUCCESS",
          "startTimeMillis":1557466865325,
          "endTimeMillis":1557466871660,
          "durationMillis":6335,
          "queueDurationMillis":20,
          "pauseDurationMillis":0,
          "stages":[ 
             { 
                "_links":{ 
                   "self":{ 
                      "href":"/job/decrative-pipeline/job/03_write_file/16/execution/node/6/wfapi/describe"
                   }
                },
                "id":"6",
                "name":"Declarative: Checkout SCM",
                "execNode":"",
                "status":"SUCCESS",
                "startTimeMillis":1557466869947,
                "durationMillis":1655,
                "pauseDurationMillis":0
             },
             { 
                "_links":{ 
                   "self":{ 
                      "href":"/job/decrative-pipeline/job/03_write_file/16/execution/node/13/wfapi/describe"
                   }
                },
                "id":"13",
                "name":"write file",
                "execNode":"",
                "status":"SUCCESS",
                "startTimeMillis":1557466871618,
                "durationMillis":15,
                "pauseDurationMillis":0
             }
          ]
       },
       { 
          "_links":{ 
             "self":{ 
                "href":"/job/decrative-pipeline/job/03_write_file/15/wfapi/describe"
             }
          },
          "id":"15",
          "name":"#15",
          "status":"SUCCESS",
          "startTimeMillis":1554442450777,
          "endTimeMillis":1554442452894,
          "durationMillis":2117,
          "queueDurationMillis":6,
          "pauseDurationMillis":0,
          "stages":[ 
             { 
                "_links":{ 
                   "self":{ 
                      "href":"/job/decrative-pipeline/job/03_write_file/15/execution/node/6/wfapi/describe"
                   }
                },
                "id":"6",
                "name":"Declarative: Checkout SCM",
                "execNode":"",
                "status":"SUCCESS",
                "startTimeMillis":1554442451871,
                "durationMillis":868,
                "pauseDurationMillis":0
             },
             { 
                "_links":{ 
                   "self":{ 
                      "href":"/job/decrative-pipeline/job/03_write_file/15/execution/node/13/wfapi/describe"
                   }
                },
                "id":"13",
                "name":"write file",
                "execNode":"",
                "status":"SUCCESS",
                "startTimeMillis":1554442452776,
                "durationMillis":71,
                "pauseDurationMillis":0
             }
          ]
       },
       { 
          "_links":{ 
             "self":{ 
                "href":"/job/decrative-pipeline/job/03_write_file/14/wfapi/describe"
             }
          },
          "id":"14",
          "name":"#14",
          "status":"SUCCESS",
          "startTimeMillis":1554442389169,
          "endTimeMillis":1554442395175,
          "durationMillis":6006,
          "queueDurationMillis":2,
          "pauseDurationMillis":0,
          "stages":[ 
             { 
                "_links":{ 
                   "self":{ 
                      "href":"/job/decrative-pipeline/job/03_write_file/14/execution/node/6/wfapi/describe"
                   }
                },
                "id":"6",
                "name":"Declarative: Checkout SCM",
                "execNode":"",
                "status":"SUCCESS",
                "startTimeMillis":1554442393462,
                "durationMillis":1671,
                "pauseDurationMillis":0
             },
             { 
                "_links":{ 
                   "self":{ 
                      "href":"/job/decrative-pipeline/job/03_write_file/14/execution/node/13/wfapi/describe"
                   }
                },
                "id":"13",
                "name":"write file",
                "execNode":"",
                "status":"SUCCESS",
                "startTimeMillis":1554442395143,
                "durationMillis":13,
                "pauseDurationMillis":0
             }
          ]
       },
       { 
          "_links":{ 
             "self":{ 
                "href":"/job/decrative-pipeline/job/03_write_file/13/wfapi/describe"
             }
          },
          "id":"13",
          "name":"#13",
          "status":"SUCCESS",
          "startTimeMillis":1552486452530,
          "endTimeMillis":1552486458565,
          "durationMillis":6035,
          "queueDurationMillis":4,
          "pauseDurationMillis":0,
          "stages":[ 
             { 
                "_links":{ 
                   "self":{ 
                      "href":"/job/decrative-pipeline/job/03_write_file/13/execution/node/6/wfapi/describe"
                   }
                },
                "id":"6",
                "name":"Declarative: Checkout SCM",
                "execNode":"",
                "status":"SUCCESS",
                "startTimeMillis":1552486456845,
                "durationMillis":1662,
                "pauseDurationMillis":0
             },
             { 
                "_links":{ 
                   "self":{ 
                      "href":"/job/decrative-pipeline/job/03_write_file/13/execution/node/13/wfapi/describe"
                   }
                },
                "id":"13",
                "name":"write file",
                "execNode":"",
                "status":"SUCCESS",
                "startTimeMillis":1552486458519,
                "durationMillis":23,
                "pauseDurationMillis":0
             }
          ]
       }
    ]

    ビルドの履歴と、実行結果、ジョブの開始時間、実行時間といった情報が取れています。 Remote Access APIよりも情報量がしっかりしていて、なおかつ見やすい作りになっているようです。

    ビルド結果の情報

    最新のビルド結果の情報を確認してみます。

    http://jenkins.tielec.blog:8080//job/decrative-pipeline/job/03_write_file/17/wfapi/describe

    Jsonをクリックで展開します

    { 
       "_links":{ 
          "self":{ 
             "href":"/job/decrative-pipeline/job/03_write_file/17/wfapi/describe"
          },
          "changesets":{ 
             "href":"/job/decrative-pipeline/job/03_write_file/17/wfapi/changesets"
          }
       },
       "id":"17",
       "name":"#17",
       "status":"SUCCESS",
       "startTimeMillis":1567136586348,
       "endTimeMillis":1567136633687,
       "durationMillis":47339,
       "queueDurationMillis":11,
       "pauseDurationMillis":0,
       "stages":[ 
          { 
             "_links":{ 
                "self":{ 
                   "href":"/job/decrative-pipeline/job/03_write_file/17/execution/node/6/wfapi/describe"
                }
             },
             "id":"6",
             "name":"Declarative: Checkout SCM",
             "execNode":"",
             "status":"SUCCESS",
             "startTimeMillis":1567136630725,
             "durationMillis":2430,
             "pauseDurationMillis":0
          },
          { 
             "_links":{ 
                "self":{ 
                   "href":"/job/decrative-pipeline/job/03_write_file/17/execution/node/13/wfapi/describe"
                }
             },
             "id":"13",
             "name":"write file",
             "execNode":"",
             "status":"SUCCESS",
             "startTimeMillis":1567136633197,
             "durationMillis":469,
             "pauseDurationMillis":0
          }
       ]
    }

    ステージごとの情報が取得できていることがわかります。 ステージの名前や、ステージの成功失敗、ステージの開始時間や実行時間といった情報が取れています。

    changesets のエンドポイントも見てみます。 http://jenkins.tielec.blog:8080//job/decrative-pipeline/job/03_write_file/17/wfapi/changesets

    [ 
       { 
          "kind":"git",
          "commitCount":1,
          "commits":[ 
             { 
                "commitId":"2ae5f87662481e3cedaf98b9b6faa64e4e8e0a7f",
                "commitUrl":"https://github.com/sakamaki-y123/jenkins-continuous-delivery/commit/2ae5f87662481e3cedaf98b9b6faa64e4e8e0a7f",
                "authorJenkinsId":"noreply",
                "message":"Update pipeline_19_random_kitten_generator.groovy",
                "timestamp":1565431885000,
                "consoleUrl":"/job/decrative-pipeline/job/03_write_file/17/changes#2ae5f87662481e3cedaf98b9b6faa64e4e8e0a7f"
             }
          ],
          "consoleUrl":"/job/decrative-pipeline/job/03_write_file/17/changes"
       }
    ]

    Gitのどのリビジョンで実行されたものかがわかるようになっています。

    他にも、artifactspendingInputActionsといったエンドポイントもあり、アーカイブされたファイルの情報を取得したりすることや、ユーザーの入力を求める際の情報などの情報が取得できるみたいです。

    まとめ

    この記事では、JenkinsのAPIを使ってジョブの情報を取得する方法について紹介しました。APIを活用することで、Jenkinsの情報をプログラムから取得したり、自動化を進めることができます。

    おすすめ書籍

    もっと深く学びたい方へ

    この記事で、Pipeline APIを使った情報取得の方法は理解できたと思います。

    でも、「どのメトリクスを監視すべきか」「取得した情報をどう活用するか」という判断は、運用の目的によって変わります。

    より深い理解のために、こちらの記事もおすすめです:

    「監視を整えたい」から始まったヒアリングが、朝チェックの話に着地した理由

    「監視を整えたい」から始まったヒアリングが、朝チェックの話に着地した理由

    Tech
    SRE
    戦略的トラブルシュート - DECSARメソッドとは -

    戦略的トラブルシュート - DECSARメソッドとは -

    Tech
    SRE

    この記事は役に立ちましたか?

    Coffee cup

    この記事が、何かの整理につながったら

    コーヒー1杯分の応援をもらえると嬉しいです。

    ※ これは応援とは別の話ですが、

    同じようなテーマを自分の文脈で整理したい場合は、 (文章だけだと詰まりやすい人向けに) 思考整理の壁打ちという形で対話の時間も取っています。

    対話の時間について