Vercelのプレビューデプロイで特定のブランチ以外を無視する
VercelプロジェクトにGitHubリポジトリを連携すると、なんらかのブランチにプッシュするたびにプレビューデプロイを作ってくれる。とても便利な機能ではあるのだが頻繁にプッシュをしていると制限に引っかからないか不安になったりもする。
で、2021年3月時点ではこのプレビューデプロイの対象ブランチを特定のブランチのみに絞ることがややこしい。要望は多そうなので今後対応されるかも。最新の情報は下記のIssueをチェックするのが良いと思う。
特定のブランチ以外のプレビューデプロイを無視するには
「Ignored Build Step」というものを使うことになる。Zennの開発メンバーがやってくれた。このスクラップの通りにやればいける。
1. プロジェクトにシェルスクリプトを配置
例としてdevelop
ブランチにプッシュされたとき(PRがマージされたとき)のみ、プレビューデプロイを行いたいとする。まず、vercel-ignore-build-step.sh
などのファイルを作成して、内容を以下のようにする。
#!/bin/bash
echo "VERCEL_GIT_COMMIT_REF: $VERCEL_GIT_COMMIT_REF"
if [[ "$VERCEL_GIT_COMMIT_REF" == "develop" ]] ; then
# Proceed with the build
echo "✅ - Build can proceed"
exit 1;
else
# Don't build
echo "🛑 - Build cancelled"
exit 0;
fi
2. VercelのダッシュボードでIgnored Build Stepを設定
Vercelのダッシュボードでプロジェクトを開き[Git]というメニューを開く。[Ignored Build Step]というセクションの中にCOMMANDを指定できるので、作成したファイルを実行するように指定する。プロジェクトのルートにvercel-ignore-build-step.sh
を配置したのであればこんな感じ。
bash vercel-ignore-build-step.sh
こんな感じで指定する
これで設定は完了。対象のブランチにプッシュされたとき以外はこんな感じでキャンセルされたことが表示される。
この表示を消すのは今のところ難しそう…。
おまけ) Vercel Botからのプルリクへのコメントをオフにするには
デフォルトではVercel BotからPRにコメントがつくようになっている。これをオフにしたいときは、プロジェクトルートのvercel.json
を開き(なければ作成)、github.silent
の値をtrue
にすればOK。
{
"github": {
"silent": true
}
}
Discussion