清除 Jenkins 构建历史记录(清除昨天的构建)

清除 Jenkins 构建历史记录(清除昨天的构建)

我需要清除并清理詹金斯构建历史:昨天-2天前-所有版本. 我如何在詹金斯中做到这一点?

答案1

  • 通过 GUI 删除 Jenkins 构建。

    进入要删除的构建,然后单击右上角的按钮。  Delete this build  

    在此处输入图片描述

  • 如果你需要清理 Jenkins 构建历史记录,并重置版本号回到1,您可以在Jenkins脚本控制台中运行一个简单的脚本。来源

    1. 转到詹金斯脚本控制台

      转到你的 Jenkins 主页 ->管理 Jenkins->脚本控制台

      在此处输入图片描述

    2. 运行此脚本来清理并重置。

      将此脚本复制并粘贴到控制台脚本文本区域,并将 更改"copy_folder"为需要清除历史记录的项目名称。然后点击跑步按钮。

      def jobName = "copy_folder"  
      def job = Jenkins.instance.getItem(jobName)  
      job.getBuilds().each { it.delete() }  
      job.nextBuildNumber = 1   
      job.save()
      

      如果您使用多分支管道或文件夹,则上述脚本的第二行必须进行如下修改:

      def jobName = "path/to/your/jenkins/pipeline/master"
      def job = Jenkins.getInstance().getItemByFullName(jobName, Job.class)
      

删除旧版本或作业的另一种方法是通过命令行。

登录 Jenkins 命令行。

要删除整个作业并建立历史记录,请删除作业文件夹,例如:

rm -rf jobs/jobname

查看构建历史:

$ls 作业/作业名称/构建

1409 1411 1413 1415 1417 1419 1421 1423 1425
923 963 974 985 上次失败构建 上次成功构建  
上次未成功构建 1191 1334 1348 1379 1381 1383
1406 1408 1410 1412 1414 1416 1418 1420 1422 1424
913 962 973 978 987 上次稳定构建 上次不稳定构建
遗留 ID

要删除选定的构建,请删除构建号目录,例如:

rm -rf jobs/jobname/builds/97* jobs/jobname/builds/13*

不要忘记最后一步如果在 Jenkins 下删除或编辑文件。

从文件系统中删除作业或构建后,您需要转到管理 Jenkins在 Jenkins GUI 中单击从磁盘重新加载配置

注意:Jenkins 主目录可能位于/var/jenkins_home/var/lib/jenkins其他位置。

答案2

上面的解释很棒。它涵盖了清理历史记录、作业等的不同方法。

只是基于上述内容的一个想法:用 Jenkins 作业包装要删除的命令行指令并参数化构建号,例如在作业参数中指定 CSV 并在与作业关联的 shell 脚本中解析它以删除目标构建。和/或添加 DELETE_ALL_BUILDS 复选框参数并使用脚本中的 IF 语句检查它 - 如果选中,则删除所有构建。您还可以参数化作业的名称,例如提供一个名为 JOB_NAME 的参数,并在脚本中插入值,例如:

rm -rf jobs/${JOB_NAME}/builds/${BUILD_NUM}*

答案3

您必须是 Jenkins 管理员才能执行此任务。以下是 Jenkins 作业 305 的示例。

  • 打开 Jenkins → 选择需要删除的分支 → 选择 Build History
  • 构建历史记录选项 → 选择错误构建的红色圆圈 (#305)
        构建历史记录选项
  • 詹金斯作业错误→ 选择删除构建:
        删除构建选项
  • 删除前的确认信息→选择“是”进行删除。
        删除前的确认信息

答案4

# cd to your Jenkins install directory with the userid that has "permissions"

sudo bash     ( if you have to )

# My installation is like this, so go wherever you placed yours:

cd /reps/jenkins/home/jobs/TestPlaywrightSuite/builds 

# Touch these two files to exclude from the auto search below
#   but since these are regular files, they should be excluded from
#   the find command anyway
touch permalinks
touch legacyids

# find directories older than 7 days and delete on one command

find . -type d -mtime +7 -exec rm -rf {} \;

相关内容