我的哈德森CI上有大约100个工作,可以批量删除它们吗?
答案 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)
答案 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并以这种方式填充它的配置通常会更快。