哈德森CI:如何删除所有工作?

时间:2011-02-22 09:21:23

标签: jenkins hudson

我的哈德森CI上有大约100个工作,可以批量删除它们吗?

4 个答案:

答案 0 :(得分:42)

最简单的方法,恕我直言,将使用脚本。转到http://your.hudson.url/script/

通过运行删除作业:

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

这种方式可让您轻松使用条件来过滤掉要删除的作业。


FOR JENKINS

当前版本(2.x):

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

旧版本:

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

答案 1 :(得分:14)

只需删除作业目录:

cd $HUDSON_HOME/jobs
rm -rf <JOB_NAME>

请参阅:Administering Hudson

答案 2 :(得分:7)

您可以以编程方式使用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的编程语言执行此操作)

答案 3 :(得分:3)

我有一个运行500多个构建作业的Hudson实例存在类似的可管理性问题 - 使用gui手动维护许多作业是不切实际的。但是,您可以使用CLI远程和编程地在Hudson中设置作业 - CLI以jar文件的形式提供 [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中的手动更改引起的,或者您为部署到的每个环境使用不同的CI服务器(即开发人员) ,测试,产品)并需要提供一个新的。

当编写错误的插件破坏了Hudson自己的XML并且我需要重建我的实例时,这也让我脱离了几个绑定。 Hudson也是I / O绑定的,对于真正加载的实例,从头开始启动Hudson并以这种方式填充它的配置通常会更快。