簡體   English   中英

[GitHub 操作]:創建工件容器失敗:已達到工件存儲配額。 無法上傳任何新工件

[英][GitHub Actions]: Create Artifact Container failed: Artifact storage quota has been hit. Unable to upload any new artifacts

我有一個 GitHub 工作流程,可以為我的 Flutter 應用程序創建 APK。 直到最近這一切都很好,我似乎已經用完了某種配額。 現在,當工作流運行時,出現此錯誤:

Create Artifact Container failed: Artifact storage quota has been hit. Unable to upload any new artifacts

我假設刪除所有工件會再次釋放空間,所以我使用另一個工作流程來實現這一點:

name: 'Delete old artifacts'

on:
  push:
    branches:
      - master
      - develop
  pull_request:
    branches:
      - master
      - develop

jobs:
  delete-artifacts:
    runs-on: ubuntu-latest
    steps:
      - uses: kolpav/purge-artifacts-action@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          expire-in: 0days

新的工作流程似乎正在運行,我不再在 GitHub UI 中看到舊文件。 但是,我在嘗試運行 APK 工作流程時仍然遇到錯誤。 任何想法如何解決這個錯誤?


更新

我的 GitHub 說我已經用完了包含的服務(免費版)。 有沒有辦法撤消它? 簡單地刪除工件似乎是不夠的。 在此處輸入圖像描述

沒有辦法撤消。 配額是每月的,所以你只需要等待配額重置。

Github Actions (runner time) 和 Github Storage (artifacts) 應該有單獨的配額。

對於 Github 操作,我知道它們對公共存儲庫是免費的,因此您可以更改存儲庫的可見性,至少在需要時可以暫時更改。 至於 Github 存儲,我不確定同樣的技巧是否有效,從未測試過。

讓我知道,我可以更新答案。

您實際上可以刪除舊工件來繞過它。 只需 go 到您的操作,單擊以前的構建並檢查頁面底部是否有存儲的工件。 有一個回收站圖標,您可以單擊以將其刪除。

人工制品

您還可以指定 Github 何時自動為您刪除舊工件。 您將 go 進入設置 -> 操作 -> 常規並找到“工件和日志保留”。

工件和日志保留

請注意,Github 可能需要一些時間來更新已完成的配額。

我設法通過在我的部署腳本中添加一個新步驟來阻止此錯誤:

  - name: Delete Old Artifacts
    uses: actions/github-script@v6
    id: artifact
    with:
      script: |
        const res = await github.rest.actions.listArtifactsForRepo({
          owner: context.repo.owner,
          repo: context.repo.repo,
        })

        res.data.artifacts
          .forEach(({ id }) => {
            github.rest.actions.deleteArtifact({
              owner: context.repo.owner,
              repo: context.repo.repo,
              artifact_id: id,
            })
          })

將它放在上傳步驟的正上方,它將刪除存儲庫中所有以前的工件。

暫無
暫無

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

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