清除 Jenkins 建置歷史(清除昨天的建置)

清除 Jenkins 建置歷史(清除昨天的建置)

我需要清除和清理 Jenkins 建置歷史:昨天-2天前-所有構建。我怎樣才能在詹金斯中做到這一點?

答案1

  • 透過 GUI 刪除 Jenkins 建置。

    進入您要刪除的構建,然後點擊右上角的按鈕。  Delete this build  

    在此輸入影像描述

  • 如果您需要清理 Jenkins 建置歷史記錄並重置內部版本號回到1,您可以在Jenkins腳本控制台中運行一個簡單的腳本。來源

    1. 去詹金斯腳本控制台

      前往您的 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 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 {} \;

相關內容