2012-03-08 11 views
5

Jenkinsには、keep-foreverとしてマークされたすべてのビルドをリストする簡単な方法はありますか?そして、理想的には、ワンクリックでビルドのマークを解除するか、またはすぐに削除するかのどちらかです。ジェンキンスのすべてのキープ永遠のビルドをリストアップしますか?

このプロセスでは、特定のタイプの障害が発生した場合は、ビルドを永久にマークします。それはJenkinsが時間の経過とともに自動的に削除されないようにするためです。時間の経過とともに私たちのすべてのディスクスペースを占有しないように、これらすべての永続的なビルドのリストを取得する簡単な方法が必要です。

答えて

8

ジェンキンスに対して次のXPathクエリでは、すべてのURLが一覧表示されます「フォーエバーください」と記されたビルドします:

http://[jenkins_server]/api/xml?depth=2&xpath=/hudson/job/build[keepLog="true"]/url&wrapper=forever 

は、ブラウザでそれを入力し、それが返すものを参照してください。

これをXSLTベースのHTMLに埋め込んで、それらのビルドへのリンクを持つリストを取得することができます。あなたはジェンキンスCLIを起動するボタン提供することができますビルドを削除するには:残念ながら

java -jar jenkins-cli.jar -s http://[jenkins_server]/ delete-builds [job-name] [build-num] 

を、私はそれを削除せずにCLIで「永遠のビルドを保つ」無効にする方法がわかりません。

+1

あなたのJenkinsがあまりにも大きくない場合、うまく動作します。残念なことに、Jenkinsの制作には数百のジョブがあり、数千のビルドがあります。 Javaスタックの領域が不足しています。しかし、同じアイデアを使って、ジョブとビルドを繰り返し、同じことをするスクリプトを書くことができました。助けてくれてありがとう! –

3

私は同じことを探していた、と私たちのジェンキンスは、同様に非常に大きなであり、リンクをしよう:

http://[jenkins_server]/api/xml?depth=2&xpath=/hudson/job/build[keepLog="true"]/url&wrapper=forever 

私はそれをクラッシュ終わりました。

しかし、わかりましたが、一度に1つのジョブの最後の「永遠のまま」ビルドを必要とするだけです。これはより速く動作するようです。あなたは、あなたのニーズに合わせてXPathを変更することができます 「永遠に保つ」としてマークされているビルドのすべての数字でXMLを返す

http://[jenkisn_server]/job/[job_name]/api/xml/?depth=2&xpath=/freeStyleProject/build[keepLog="true"]/number&wrapper=forever 

:だから私は、代わりに以下を使用します。

+2

私は何が間違っているのか分かりませんが、これは私が役に立つと思ったものです。あなたのコメントはあまり役に立ちません。 – teapothat