Vercelの古いデプロイを一括で削除する
Vercelにデプロイするごとにデプロイの一覧に古いデプロイがたまっていきます。
一覧から1つずつ古いデプロイの詳細を開いて削除していくのは面倒なので一括で削除する方法について調べました。
Vercelから提供されているコマンドラインで操作できるVercel CLIを使用することで一括で削除することができました。
Vercel CLIのインストール
Vercel CLIに記載がある通り以下のコマンドでインストールします。Node.jsがインストールされていない場合は先にインストールしておきます。
npm i -g vercel
以下のコマンドでバージョン情報が表示されたらインストール成功です。
vercel --version
デプロイの一覧表示
まずはプロジェクトの一覧を表示してみます。以下のように引数なしでListコマンドを実行します。
vercel ls
まだVercel CLIでログインしていない場合は以下のようにログイン方法の選択が表示されるので、利用しているログイン方法を選択してVercelにログインします。
Vercel CLI 23.1.2
> > No existing credentials found. Please log in:
> Log in to Vercel (Use arrow keys)
> Continue with GitHub
Continue with GitLab
Continue with Bitbucket
Continue with Email
Continue with SAML Single Sign-On
─────────────────────────────────
Abort
ログインに成功した場合はプロジェクト一覧が表示されます。
project latest deployment state age username
hugo-sample hugo-sample-hnh50pzsk-xxxxx.vercel.app READY 42m xxxxx
blog blog-xxxxxxxxx-xxxxx.vercel.app READY 15h xxxxx
次はプロジェクトのデプロイの一覧を表示してみます。以下のようにListコマンドにプロジェクトを指定して実行します。
vercel ls hugo-sample
指定したプロジェクト(hugo-sample)のデプロイの一覧が表示されます。
project latest deployment state age username
hugo-sample hugo-sample-hnh50pzsk-xxxxx.vercel.app READY 48m xxxxx
hugo-sample hugo-sample-2hv7eucpi-xxxxx.vercel.app READY 49m xxxxx
hugo-sample hugo-sample-6ljp7y4eg-xxxxx.vercel.app READY 55m xxxxx
hugo-sample hugo-sample-6ntsq6vk7-xxxxx.vercel.app READY 1h xxxxx
hugo-sample hugo-sample-ctj0lcvr7-xxxxx.vercel.app READY 1h xxxxx
hugo-sample hugo-sample-7qlykd24c-xxxxx.vercel.app READY 1h xxxxx
古いデプロイの一括削除
古いデプロイの削除にはRemoveコマンドを使用します。
ただし、Vercel CLIのRemoveのドキュメントに以下の記載があり、--safe
オプションを指定しない場合は指定したプロジェクトが削除されてしまうので注意が必要です。
WARNING: By using the project name, the entire project will be removed from the account unless the `--safe` is used.
以下のようにRemoveコマンドにプロジェクトと--safe
オプションを指定して実行します。
vercel rm hugo-sample --safe
削除するデプロイの一覧と削除の確認メッセージが表示されます。削除を実行する場合はy
を入力します。
> Found 5 deployments for removal in xxxxx [1s]
> The following 5 deployments will be permanently removed:
dpl_9naynD41PnHrh3RJuCqZ8SajGAiX https://hugo-sample-2hv7eucpi-xxxxx.vercel.app 1h ago
dpl_B6smVuzcc32z1tmwQHZA3U19Y3dF https://hugo-sample-6ljp7y4eg-xxxxx.vercel.app 1h ago
dpl_2iVx1MGfWZnV5vg8Y7zDk3oaM15A https://hugo-sample-6ntsq6vk7-xxxxx.vercel.app 1h ago
dpl_Bh3acKCLfsC23cEYFrNnVEvkbTtv https://hugo-sample-ctj0lcvr7-xxxxx.vercel.app 1h ago
dpl_E2DAJYcf2BaSQGeP1A5UEJBo47sL https://hugo-sample-7qlykd24c-xxxxx.vercel.app 2h ago
> Are you sure? [y/N]
削除が成功したらListコマンドでデプロイの一覧を確認します。
vercel ls hugo-sample
古いデプロイが削除されていることが確認できました。
project latest deployment state age username
hugo-sample hugo-sample-hnh50pzsk-xxxxx.vercel.app READY 1h xxxxx
まとめ
Vercel CLIを使うことでコマンドラインから古いデプロイを一括削除することができました。
Vercel CLIのRemoveコマンドに--safe
オプションを指定しない場合はプロジェクトごと削除されてしまうので注意が必要です。
ちなみに実際に--safe
オプションなしでRemoveコマンドを実行してみたところプロジェクトが削除されました。