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

Next.js使用時にrecoil-persistのStorageを変更する

クライアント側で実行された場合のみstorageを指定するようにした

Next.jsで環境に応じて特定のページを非表示にする

NODE_ENVでredirectsを出し分けた

Next.jsで動的URLをRewriteする

next.config.jsにrewritesを追加

Next.js + typescriptでpathsのエイリアスがModule not foundになる

next.config.jsに追記する必要があった

Next.js + Algoliaで全文検索UIを実装する

react-instantsearchを利用