我如何清除我的Jenkins / Hudson构build历史?
我最近更新了我的一个哈德森版本的configuration。 构build历史不同步。 有没有办法清除我的编译历史?
谢谢,麻烦您了
如果您单击pipe理Hudson /从磁盘重新加载configuration,Hudson将重新加载所有构build历史数据。
如果磁盘上的数据搞砸了,那么你需要进入你的%HUDSON_HOME%\ jobs \ < projectname >目录并按照它们应该恢复的构build目录。 然后重新加载configuration数据。
如果你只是问如何删除所有的构build历史,你可以通过用户界面(如果只有less数)逐个删除构build,或者去%HUDSON_HOME%\ jobs \ < projectname >目录并删除所有子目录 – 他们对应的构build。 之后重新启动服务以使更改生效。
使用脚本控制台(pipe理jenkins>脚本控制台)和类似这个脚本批量删除作业的构build历史https://github.com/jenkinsci/jenkins-scripts/blob/master/scriptler/bulkDeleteBuilds.groovy
该脚本假定您只想删除一系列构build。 要删除给定作业的所有版本,请使用以下(testing):
// change this variable to match the name of the job whose builds you want to delete def jobName = "Your Job Name" def job = Jenkins.instance.getItem(jobName) job.getBuilds().each { it.delete() } // uncomment these lines to reset the build number to 1: //job.nextBuildNumber = 1 //job.save()
这个答案是jenkins
-
转到您的Jenkins主页→ pipe理Jenkins → 脚本控制台
-
在那里运行下面的脚本。 将
copy_folder
更改为your project name
码:
def jobName = "copy_folder" def job = Jenkins.instance.getItem(jobName) job.getBuilds().each { it.delete() } job.nextBuildNumber = 1 job.save()
我的post
这是另一个选项:用cURL删除构build。
$ curl -X POST http://jenkins-host.tld:8080/jenkins/job/myJob/[1-56]/doDeleteAll
以上删除作业myJob构build#1到#56。
如果在Jenkins实例上启用了身份validation,则必须提供用户名和API令牌,如下所示:
$ curl -u userName:apiToken -X POST http://jenkins-host.tld:8080/jenkins/job/myJob/[1-56]/doDeleteAll
必须从Jenkins的/ me / configure页面获取API令牌。 只需点击“显示API令牌…”button即可显示用户名和API令牌。
编辑:人们可能需要通过上面的url中的doDelete
replacedoDeleteAll
来完成这项工作,具体取决于所使用的Jenkins的configuration或版本。
您可以临时修改项目configuration以仅保存最后一个版本,重新加载configuration(应该废弃旧版本),然后再次将configuration设置更改为所需的值。
以下是如何使用Jenkins脚本删除所有JOBS的所有BUILDS。
def jobs = Jenkins.instance.projects.collect { it } jobs.each { job -> job.getBuilds().each { it.delete() }}
清理构build的另一个简单方法是在作业结束时添加Discard Old Plugin。 设置要保存的版本的最大数量,然后再次运行作业:
https://wiki.jenkins-ci.org/display/JENKINS/Discard+Old+Build+plugin
导航到: %JENKINS_HOME%\jobs\jobName
打开文件“nextBuildNumber”并更改编号。 之后,重新加载Jenkinsconfiguration。 注意:“nextBuildNumber”文件包含Jenkins将使用的下一个版本号。
转到%HUDSON_HOME%\jobs\<projectname>
删除builds
目录并删除lastStable, lastSuccessful
链接,并删除nextBuildNumber
文件。
做完上述步骤后,从UI下面的链接
jenkins – >pipe理jenkins – >从磁盘重新加载configuration
它会做你需要的
如果使用脚本控制台方法,则尝试使用以下代替考虑作业是否被分组到文件夹容器中。
def jobName = "Your Job Name" def job = Jenkins.instance.getItemByFullName(jobName)
要么
def jobName = "My Folder/Your Job Name def job = Jenkins.instance.getItemByFullName(jobName)