2016-07-28 14 views
0

APIを使用してビルドの詳細を調べようとしています。私は特定の結果を得るために以下を使用しています。 http://localhost:8080/job/test/lastBuild/api/json?pretty=trueapiで失敗したビルドステップを知る

ビルドが失敗すると、ビルドのステータスが表示されます。どのビルドステップが問題を引き起こしているのかを判断したい。私にはどうすればapiを通して得ることができるのか教えてください

答えて

1

これは興味深い質問です。

ジェンキンスは、あなたが言ったように、ジェンキンスはあなたに良いと悪いことを伝えているので、私は前にこのようなものは見つけられませんでした。

可能な解決策は、Jenkins BFAプラグインを使用することです。

https://wiki.jenkins-ci.org/display/JENKINS/Build+Failure+Analyzer

このプラグインを使用すると、自動あなたが設定で説明したエラーパターンに基づいてエラーを検出することができます。

そして、詳細なエラー情報をjenkins jsonファイルから収集することができます。

Brで、

私たちジェンキンスインスタンスの外に構築し、[ビルドの不良解析装置によって分類するものを含む障害を、一致しようとすると失敗をこするにいくつかの仕事をしてきたティム

+0

私はBFAプラグインをインストールして、障害パターンを設定しました。しかし、ジェンキンのapi json形式でこのエラーを取得する方法を教えてください。 – user987709

+0

こんにちは、https:// localhost/jenkins/job/ShellTest/1/api/json?pretty = true&depth = 3、depth = 3のようなものを使用する必要があります。 "foundFailureCauses":[ { "カテゴリ":[ "ポンポン" ]、 "説明": "SCM接続またはdeveloperConnectionが指定されなければならない"、 "ID":「28953504-e351-4dff-9c9b-1143325d6c7a "、 " name ":" Pom - Missing SCM Information " }を入力すると、jsonパーサーで応答を解析できます。 – Tim

0

、および私はそれが少しイライラすることを伝えることができます。

私たちは3つのタイプのビルド(FreeStyle、Matrix、Workflow)を持っており、それぞれが異なる方法でレポートします。 APIの作品にdepth=3を使用して試合ティムさんのコメントが、私はより具体的なを使用している:

https://HOST_NAME/job/PROJECT_NAME/api/json?pretty=true&tree=allBuilds[number,timestamp,url,duration,result,runs[url,number],actions[foundFailureCauses[*]]]

tree部分は、あなたが欲しいすべての部分を取得し、より良いを確認します(時々depthが事をすることを得ることはありません。これは)、あなたがしていないものを排除します。これはFreeStyleビルド、および単一ノードで終了するWorkflowビルドで機能します。

Matrixビルドの場合は、runsで提供されているリンクをたどる必要がありますが、それはあなたに与えられたURLを集めなければなりません(間違った場所にビルド番号が入ります)。次に、リンクされたビルドで同じAPIを呼び出して、そのAPIを取り除きます。

ワークフロービルドには、わたしの知る限り、厄介なニュース、良いニュース、悪いニュース、さらに悪いニュースがあります。これはワークフローのビルドであることがわかります(質問なしで取得した_classのプロパティを参照)。次に、wfapiapi/jsonの代わりに置き換えますパラメーター)。その後、失敗の場所を特定するためのフォームに戻るjsonリンクをたどることができます。良いことは、これがあなたに、理解できないメッセージ(いつか)を含む、障害へのより良いリンクを与えることです。

悪い知らせは、ビルドエラーアナライザが適切に動作しているかどうか、または適切なビルドステップでそれをマークする方法を知っていないことです。

さらに悪いことに、私のサーバー上の多くのビルドでは、このAPIはまったく動作していないようです。これはBlueOceanのUIから同様の情報を見ることができます。私は今これを実行して調査中です。

申し訳ありませんが、これは簡単な答えではありませんが、それは私がこの時点で知る限り、物事の状態です。

関連する問題