2016-08-26 43 views
0

リモートスクリプトからjenkinsの最後のビルド番号(特定のジョブ用)を取得しようとしています。Jenkins XMLを解析する

私はこのようにあります。

<jenkins url>/api/xml?tree=jobs[name,lastBuild[number]] 

<hudson> 

<job> 
<name>mfg-tools-build-win32</name> 
<lastBuild> 
<number>220</number> 
</lastBuild> 
</job> 
... 
<job> 
<name>client-sign</name> 
<lastBuild> 
<number>103</number> 
</lastBuild> 
</job> 

... 

を生産、私は名前は、 "クライアント・記号" であるジョブの数を( "103")を取得するワン。

<jenkins url>/api/xml?tree=jobs[name[contains(.,'luna-dev-sa7-evcs-client-sign')],lastBuild[number]] 

をしかし、それは出力には何も変わっていない:私はジョブ・エントリを制限しようとした

が返さ。 (「クライアントのサインインコピー」としてタグ付けされた1がある)

<jenkins url>/api/xml?xpath=/hudson/job/name/text()[contains(.,%27client-sign%27)] 

しかし、それは私にマッチした二つのノードを示すエラーを与えて巻き上げる:

は、私はハドソンのドキュメントのサイトにあるいくつかのXPathを使用してみました。

最後のビルドを実行するには、どのxpathが必要ですか?

更新:要求ごと

https://wiki.eclipse.org/Hudson-ci/help/remote_access_api#XPath_Selection

アップデート2:

私はこれを行うことができない場合があります。私は前の回答での作業を経て、さらに得た(それが今で削除された):

<jenkins url>/api/xml?depth=1&xpath=//job[name = "client-sign"]/lastBuild/number/text() 

しかし、それは今、スロー:それも間違っていない限り

primitive XPath result sets forbidden; implement jenkins.security.SecureRequester 

は、私は画面に戻ってきたと思いますスクレイピング>: - [

アップデート3 - 必要に応じて成功はthis answerから

(ではないのXPathで)、私は

<jenkins url>/job/client-sign/lastBuild/buildNumber 

を思い付くことができましたそして、それはちょうど、私に103を与えます。 :)

+0

あなたは、XPathのURLを見つけた場所へのリンクを入力してください。 – LarsH

答えて

0

あまりにも悪いalecxeの投稿が削除されました - 彼はおそらく正しい軌道に乗っていて、私たちは仕事への答えを微調整できました。

は、すでに試したURLへの彼のXPathを適応してみてください。

http://172.20.18.219:8080/api/xml?xpath=/hudson/job[name=%27client-sign%27]/lastBuild/number/text() 
+0

私の更新を見てください2 ..私たちはどちらも同じ実現に達しましたが、私が見逃したことがない限り、これはジェンキンで無効にされている可能性があります。 – Jon