9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【GitHub Actions】ストレージの使用容量を削減する

Posted at

はじめに

GitHub Actions (GitHub Pages) を使ったリポジトリをパブリックからプライベートにした直後に次のようなメールが届いた。
image.png

メールの内容
You've used 100% of included services for the username account

Shared storage usage
 
Hello! We wanted to provide you with an update on your usage and spending.

Storage used   528MB of 512MB included

You've used 100% of included services for GitHub Storage (GitHub Actions and Packages)

To continue using Actions & Packages uninterrupted, update your spending limit.

Your usage will reset on May 01, 2022.

Update spending limit

Update spending limit ボタンをクリックすると、設定ページが表示される。
image.png

原因

リポジトリをプライベートに切り替えたことによって利用制限がかかってしまった。

GitHub Actions の利用制限について

  • パブリックリポジトリ:無料
  • プライベートリポジトリ:ストレージ制限あり

解決策

対象のリポジトリはパブリックでも問題なかったため、パブリックに戻した。しかし、使用容量が変わらないままだった。

そこで、いくつかの方法を試してみた。

Remove artifacts

  • removes artifacts that are older than the specified age
  • has the option to keep release (tagged) artifacts
  • has the option to keep a number of recent artifacts
  • respects GitHub's rate limit

使い方は非常に簡単で、リポジトリに .github/workflows ディレクトリを作成し以下のファイルを追加、push するだけでよい。

remove-old-artifacts.yml
name: Remove old artifacts

on:
  schedule:
    # Every day at 1am
    - cron: '0 1 * * *'

jobs:
  remove-old-artifacts:
    runs-on: ubuntu-latest
    timeout-minutes: 10

    steps:
    - name: Remove old artifacts
      uses: c-hive/gha-remove-artifacts@v1
      with:
        age: '1 month' # '<number> <unit>', e.g. 5 days, 2 years, 90 seconds, parsed by Moment.js
        # Optional inputs
        # skip-tags: true
        # skip-recent: 5

purge-artifacts-action

  • deleting old artifacts by setting expire duration
delete-old-artifacts.yml
name: 'Delete old artifacts'
on:
  schedule:
    - cron: '0 * * * *' # every hour

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

使い方は先程の Remove artifacts と同じ。今回は expire-in: 0 と設定し、すべてのアーティファクトを削除。

効果

使用容量が少なくなりアラートが消えた。
image.png

支払制限を設定

アラートが消えない場合に Limit spending$1 を設定すると解決するという報告もある。
image.png

9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?