簡體   English   中英

在GitLab CE Omnibus中管理(較舊的)CI工件

[英]Managing (older) CI artifacts in GitLab CE Omnibus

美好的一天,

我為我的公司運行GitLab CE Omnibus(8.4.3)安裝。 我們最近開始使用CI,但仍主要用於生成文檔。 二進制構建正在被添加。

作為系統的一部分,我運行每日備份任務(使用gitlab-rake gitlab:backup:create )。 在過去的幾天里,這些工件已經開始變得非常大,即使它只是在這個階段的文檔(doxygen生成的圖像似乎是問題的主要來源)。 由於工件包含在備份中,因此每日備份(當前策略保持2周的價值)已經變得難以處理。

我已經搜索了一些答案,但我得到的大多數點擊似乎與此階段的功能請求有關。 我知道CI仍然相對較新,但我認為工件管理在需求列表中相當高。

我有三個問題:

  1. 有沒有辦法在GitLab中管理/刪除舊工件,而不是手動將它們從磁盤中刪除(並且可能會破壞流程中的鏈接)? 如果這個過程可以自動化將是理想的。

  2. 從1開始,是否有可能在清理策略中定位特定類別的工件(即,只刪除較舊的文檔目標,但不刪除二進制文件等)?

  3. 有可能完全或基於CI目標類型,從推薦的gitlab-rake gitlab:backup:create排除工件gitlab-rake gitlab:backup:create backup procedure?

任何鏈接,提示或建議將非常感謝!

親切的問候,

[更新]更多閱讀,產生以下內容:

  1. 從Gitlab 8.5開始,我可以手動刪除單個構建工件。 這有幫助,但不具備可擴展性。 適當的工件管理(包括到期日期等)的時間表似乎是Gitlab 8.7。

  2. 似乎沒有明確要求以不同方式處理不同的構建目標工件。

  3. 沒有關於從備份任務中刪除工件的信息。

我也很想找到1和2的答案。

要排除備份任務中的項目,請嘗試SKIP參數:

gitlab-rake gitlab:backup:create SKIP=artifacts,builds

您還可以SKIP存儲庫,lfs,上傳。 只需將它們作為逗號分隔列表提供。 另見https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/raketasks/backup_restore.md

正如我在問題中所提到的,對於管理工件的更好支持可能是在Gitlab 8.7的某個時候。 請參閱Marco van Neerbos先前的回答,了解如何從備份中刪除工件。

目前,這些是管理現有工件的選項:

  1. 升級到Gitlab 8.5,它將允許您手動刪除單個構建(您仍需要跟蹤它們,然后單擊“擦除”按鈕)。
  2. 改編自Gitlab CE Issue 5572並修復,如果您知道組和項目名稱,請使用以下命令進行批量擦除(和數據庫更新):

$ sudo gitlab-rails console
> p = Project.find_with_namespace("group/project")
> p.builds.where.not(artifacts_file: nil).find_each(&:remove_artifacts_file!)
> p.builds.where.not(artifacts_metadata: nil).find_each(&:remove_artifacts_metadata!)

remove_*命令將返回nil ,但如果您檢查磁盤,文件將會消失,並從相關的構建頁面中刪除鏈接。

  1. 目前,我找不到任何關於將任何工件相關函數限制為工件的特定類型/類/目標的信息。

您可以從文件系統中刪除舊工件。 但是,如果您嘗試使用GitLab UI下載它們,則會導致404錯誤。 在我的情況下沒有人關心。

sudo du -hd 1 /var/opt/gitlab/gitlab-rails/shared/artifacts
sudo rm -rf /var/opt/gitlab/gitlab-rails/shared/artifacts/[whatever you can spare]

另請參見https://docs.gitlab.com/omnibus/settings/configuration.html#disable-storage-directories-management

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM