我的 hudson CI 上有大约 100 个工作,可以批量删除它们吗?
4 回答
恕我直言,最简单的方法是使用脚本。去http://your.hudson.url/script/
通过运行删除作业:
for(j in hudson.model.Hudson.theInstance.getProjects()) {
j.delete();
}
通过这种方式,您可以轻松地使用条件过滤掉要删除的作业。
对于詹金斯
当前版本(2.x):
for(j in jenkins.model.Jenkins.theInstance.getAllItems()) {
j.delete()
}
旧版本:
for(j in jenkins.model.Jenkins.getInstance().getProjects()) {
j.delete();
}
您可以以编程方式使用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 的编程语言来执行此操作)
对于运行 500 多个构建作业的 Hudson 实例,我遇到了类似的可管理性问题——使用 gui 手动维护这么多作业是不切实际的。但是,您可以使用 CLI 以远程和编程方式在 Hudson 中配置作业 - 它作为 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 服务器(即 dev , test, prod) 并且需要提供一个新的。
当写得不好的插件破坏了 Hudson 自己的 XML 并且我需要重建我的实例时,这也让我摆脱了一些束缚。Hudson 也是 I/O 绑定的,对于真正加载的实例,从头开始启动 Hudson 并以这种方式填充它的配置通常更快。