web-dev-qa-db-ja.com

hudson CI:すべてのジョブを削除する方法は?

ハドソンCIに約100のジョブがありますが、それらを一括削除することは可能ですか?

21
KJW

最も簡単な方法であるIMHOは、スクリプトを使用することです。 http://your.hudson.url/script/に移動します

実行してジョブを削除します。

for(j in hudson.model.Hudson.theInstance.getProjects()) {
    j.delete();
}

この方法では、条件を簡単に使用して、削除するジョブを除外するオプションが提供されます。


JENKINSの場合

現在のバージョン(2.x):

for(j in jenkins.model.Jenkins.theInstance.getAllItems()) {
    j.delete()
}

古いバージョン:

for(j in jenkins.model.Jenkins.getInstance().getProjects()) {
    j.delete();
}
43
Sergey Grinev

ジョブディレクトリを削除するだけです。

cd $HUDSON_HOME/jobs
rm -rf <JOB_NAME>

参照: ハドソンの管理

15
dogbane

プログラムで XML api を使用できます(または、必要に応じてJSONフレーバーを使用できます)。

http://your.hudson.url/api/xml?xpath=//job/name&wrapper=jobs

戻り値:

<jobs>
    <name>firstJob</name>
    <name>secondJob</name>
    <!-- etc -->
</jobs>

ここで、ジョブ名を繰り返し処理し、投稿リクエストを実行します。

 http://your.hudson.url/job/your.job.name/doDelete

(これは、XMLとHTTPをサポートする任意のプログラミング言語で実行できます)

7

500以上のビルドジョブを実行していたHudsonインスタンスでも、同様の管理性の問題が発生しました。GUIを使用してその数のジョブを手動で維持することは現実的ではありませんでした。ただし、jarファイルとして提供されるCLIを使用して、Hudsonでリモートおよびプログラムでジョブをプロビジョニングできます[http://wiki.hudson-ci.org/display/HUDSON/Hudson+CLI] =。

The command to delete a job would be something like:
**Java -jar hudson-cli.jar -s http://Host:port/ delete-job jobname**

And the rest of the commands you will need are here:
**Java -jar hudson-cli.jar -s http://Host:port/** help

Cliをpythonでラップし、ビルド構成を保持するXMLファイルを作成しました。これを使用して、Hudsonの実行中のインスタンスを操作できます。これにより、「リセット」する機能も提供されました。 CIインスタンスを既知の構成に戻す-ビルドの失敗がUIの手動変更によって引き起こされたと思われる場合、またはデプロイ先の環境(dev、test、prodなど)ごとに異なるCIサーバーを使用していて、プロビジョニングが必要な場合に便利です新しいもの。

これはまた、ひどく書かれたプラグインがハドソン自身のXMLを壊し、インスタンスを再構築する必要があったときに、いくつかのバインドから私を解放しました。ハドソンもI/Oバウンドであり、実際にロードされたインスタンスの場合、ハドソンを最初から起動して、この方法で構成を設定する方が速いことがよくあります。

3
Darren White