Vercelで指定のブランチのみデプロイを実行する

公開日時

VercelはGitHubリポジトリへのpushを自動検知してデプロイを行ってくれるので便利だが、特定のブランチの場合のみデプロイを実行したかったので対応方法を調べた。

下記記事を参考にさせていただき、Ignored Build Stepにデプロイ対象ブランチのチェックを行うスクリプトを追加した。

#!/bin/bash

echo "VERCEL_GIT_COMMIT_REF: $VERCEL_GIT_COMMIT_REF"

if [[ "$VERCEL_GIT_COMMIT_REF" == "staging" || "$VERCEL_GIT_COMMIT_REF" == "production" ]] ; then
  # Proceed with the build
  echo "✅ - Build can proceed"
  exit 1;

else
  # Don't build
  echo "🛑 - Build cancelled"
  exit 0;
fi

なお、今回ステージング(プレビュー)環境は staging ブランチ、本番環境は production ブランチで管理している。

参考記事ではプレビューデプロイを無視すると記載されていたが、プロダクションデプロイでも上記のスクリプトが実行されたのでデプロイ対象に production ブランチも設定している。

プロダクションデプロイの対象ブランチはVercelのGit settingにある「Production Branch」から変更できる。

vercel production

これでデプロイ対象外のブランチ(main)にpushした場合はデプロイが無視されるようになった。

vercel build skip

参考


Related #next.js