我阅读了这些链接:
首先,我解决了这些分别Folders
包含Views
和这些Jobs
。
考虑以下内容(为简单起见):
- 文件夹:
jenkins-01
查看:alpha作业:执行 - 文件夹:
jenkins-02
查看:beta作业:执行
从以上两个重要的观察结果来看:
- 和文件夹用于两个不同的项目
jenkins-01
。jenkins-02
Execute
Job可以在许多不同的 Folders 中重复,但仅限于名称。
现在考虑以下几点:
我可以执行Job
通过:
没有自定义 View
- 因此默认的All
默认/通用视图:
http://localhost:9090/job/jenkins-01/job/Execute/
通过许多观点,让我们说
http://localhost:9090/job/jenkins-01/view/alpha/job/Execute/
http://localhost:9090/job/jenkins-01/view/betax/job/Execute/
并且所有构建的历史或轨迹都在这个路径位置:
/Users/username/ci/jenkins/Contents/jobs/jenkins-01/jobs/Execute
脚本控制台
通过以下方式:
def jobName = ???
println jobName;
//I used any of them
//def job = Jenkins.getInstance().getItemByFullName(jobName, Job.class)
//def job = Jenkins.instance.getItem(jobName)
if(job != null) {
job.getBuilds().each { println it }
//job.getBuilds().each { it.delete() }
//job.nextBuildNumber = 1
//job.save()
}
else
println 'job is NULL'
我尝试了很多关于jobName
(it about ???
) 的组合,但我总是得到null
. 那么正确的值应该是jobName
多少呢?
命令行
java -jar jenkins-cli.jar -s http://localhost:9090 delete-builds jobName=??? '1-56'
再次:正确的值应该是什么jobName
?
请记住:每个Job
都在 a 中声明,Folder
并且 Job 的名称(只是名称)可以在许多中重复Folders
一份工作只有权威的途径——它是
job.fullName
;那是http://localhost:9090/job/jenkins-01/job/Execute/
这将为您
fullName
提供所有工作:视图只是要显示的工作的过滤列表。您应该在每个视图中看到相同的作业历史记录。
注意:不幸的是,Jenkins 允许使用相同名称的作业,就像您“移动”一个作业一样,您可以在另一个同名文件夹中破坏另一个作业。
更新:以下代码将选择所有“顶级”文件夹并遍历它们,列出每个文件夹的内容。记录(或不)递归处理的条件。一份工作只有一个句柄,那就是
it.fullName
。您可以添加其他条件以将范围限制为特定文件夹或作业名称模式。