無料ユーザも使えます!GitLabの「CI/CDパイプライン自動クリーンアップ」でストレージをスッキリ整理しよう
はじめに
GitLabを使っていて、こんな悩みはありませんか。
- CI/CDパイプラインを回すたびにアーティファクトが溜まっていく
- 古いパイプラインやログが残り続けて、ストレージ容量が気になる
- 古いパイプラインを削除したいけど、APIを使わないと消せない
実はこの悩み、GitLab 17.9(2025年2月20日リリース) で解消されました。しかも今回紹介する機能は Free / Premium / Ultimate の全プランで使える、つまり無料ユーザーでもそのまま使える機能です。
GitLabには有料プラン限定の機能も多いですが、こうした地味に効く改善は無料ユーザーにもきちんと届けられています。今回はその中でも実務にすぐ役立つ「Automatic CI/CD pipeline cleanup(CI/CDパイプラインの自動クリーンアップ)」を、わかりやすく解説していきます。
対象バージョンとプラン
| 項目 | 内容 |
|---|---|
| 一般提供(GA)バージョン | GitLab 17.9(2025年2月20日リリース) |
| 対象プラン | Free、Premium、Ultimate |
| 提供環境 | GitLab.com、GitLab Self-Managed、GitLab Dedicated |
Freeプランを含む全プランで使える機能なので、個人開発やスタートアップでGitLabの無料枠を使っている方も、ぜひこの記事を読んで設定してみてください。
なお、この機能は正確にはGitLab 17.7でフィーチャーフラグ付き(デフォルト無効)として導入されており、GitLab 17.9でそのフラグが削除され、誰でも使える状態になりました。17.9のリリースノートでは新機能として紹介されていますが、厳密には「17.9で一般提供(GA)になった」という経緯です。なので、GitLab 17.9以降を使っていれば、追加の設定なしにこの機能が使える状態になっています。
これまでの課題
これまでGitLabでは、古いCI/CDパイプラインや関連するアーティファクトを削除する手段として、UI上に専用の設定はなく、APIを使った操作が必要でした。日常的にパイプラインを大量に実行するプロジェクトでは、次のような問題が発生しがちでした。
- パイプラインの実行履歴やアーティファクトが増え続け、ディスク使用量を圧迫する
- 古い成果物が残ることでプロジェクト全体のパフォーマンスが低下する
- 手動またはスクリプトでの削除運用が必要になり、地味な保守コストがかかる
GitLab 17.9でできるようになったこと
GitLab 17.9では、プロジェクト設定に**CI/CDパイプラインの保持期間(有効期限)**を指定できるようになりました。設定した保持期間より古いパイプラインとその関連アーティファクトは、バックグラウンドジョブによって自動的に削除されます。
ポイントを整理すると次のようになります。
- 保持期間を過ぎたパイプラインは自動的に削除対象になる
- パイプラインが削除されると、そのジョブ、ジョブログ、アーティファクトもまとめて削除される
- 削除対象になるかどうかは、パイプラインのステータスや、そのブランチ・タグの最新パイプラインかどうかに関係なく、単純に「古いかどうか」だけで判断される
- クリーンアップはバックグラウンドで定期的に実行されるため、条件を満たした瞬間に即座に消えるわけではない
- 古いパイプラインが大量に溜まっているプロジェクトでは、複数回の実行を通じて段階的にクリーンアップされていく
つまり、「一定期間より古いパイプラインは自動で片付ける」という掃除のルールを、プロジェクトごとに一度設定しておけば、あとは勝手にキレイになっていく仕組みです。
設定方法
設定にはプロジェクトの Owner ロールが必要です。以下の手順で設定できます。
- 上部のバーで Search or go to を選択し、対象のプロジェクトを検索する
- 左サイドバーで Settings > CI/CD を選択する
- General pipelines を展開する
-
Automatic pipeline cleanup の項目に、保持したい期間を入力する(例:
2 weeksや30 days) - Save changes を選択する
設定できる期間は最短で1日、最長はインスタンスの上限(デフォルトでは1年)までです。空欄のままにしておけば、これまでと同じく自動削除は行われません。
なお、GitLab Self-Managed環境では、管理者がインスタンス全体の上限をさらに引き上げることも可能です。
どんなプロジェクトにおすすめか
この機能が特に効いてくるのは、次のようなプロジェクトです。
- CI/CDを頻繁に実行し、パイプラインの数が多いプロジェクト
- アーティファクトのサイズが大きく、ストレージ容量を圧迫しがちなプロジェクト
- 個人のGitLab無料プランでストレージ上限が気になっている方
- 「そういえば古いパイプラインの削除、誰もやってなかったな」という運用が放置されがちなチーム
特に無料プランを使っている個人開発者やOSSメンテナの方にとっては、ストレージ容量は意外と気になるポイントです。この設定を一度しておくだけで、余計な運用コストをかけずにストレージを健全に保てるのは大きなメリットです。
注意点
- 保持期間を過ぎたパイプラインは、ステータス(成功・失敗など)に関係なく削除対象になります。障害調査などで古い失敗ログを長期間残しておきたい場合は、保持期間を十分に長く設定するか、必要なログは別途保存しておくことをおすすめします。
- 削除はバックグラウンドで段階的に行われるため、設定直後にすべての古いパイプラインが一斉に消えるわけではありません。
- ブランチやタグの「最新のパイプライン」であっても、保持期間を過ぎていれば削除対象になる点は覚えておきましょう。
まとめ
GitLab 17.9で一般提供(GA)された「Automatic CI/CD pipeline cleanup」は、Freeプランを含むすべてのプランで使える、地味だけれど効果の大きい機能です。
- UIから簡単に保持期間を設定できる
- 古いパイプラインとその関連アーティファクトを自動で削除してくれる
- ストレージ管理やパフォーマンス改善に役立つ
「有料プランじゃないと大した機能はない」と思われがちなGitLabですが、実際には無料ユーザーでも活用できる改善が継続的に行われています。この機会にぜひ一度、自分のプロジェクトの Settings > CI/CD > General pipelines を開いて、Automatic pipeline cleanupを設定してみてください。
小さな設定ひとつで、日々のGitLab運用がちょっと快適になります。ぜひもっとGitLabを使いこなしていきましょう。
参考
- GitLab 17.9 リリースノート(https://about.gitlab.com/ja-jp/blog/gitlab-17-9-release/)
- GitLab公式ドキュメント「Customize pipeline configuration」