我如何清除我的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

  1. 转到您的Jenkins主页→ pipe理Jenkins脚本控制台

    在这里输入图像说明

  2. 在那里运行下面的脚本。 将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中的doDeletereplacedoDeleteAll来完成这项工作,具体取决于所使用的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)