Open4

Vercel: 特定のブランチのみや、特定のディレクトリに変化があった場合のみビルドする (Ignored Build Step)

特定の環境のみビルド(例: production, develop 環境

リポジトリに 、下記の sample-script.sh シェルスクリプトを用意する

#!/bin/bash

echo "VERCEL_ENV: $VERCEL_ENV"

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

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

vercelのIgnored Build Stepの設定にて、このシェルスクリプトを起動する

特定のブランチのみビルド(例: main、stagingブランチ

上記と設定は同じ。
スクリプトの内容を下記に変更

#!/bin/bash

echo "VERCEL_GIT_COMMIT_REF: $VERCEL_GIT_COMMIT_REF"

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

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

特定のディレクトリ内で変化があった場合のみ (例: monorepo構成など

monorepoで、frontendとbackendを同一リポジトリで扱っているときなど。
対象のディレクトリ、下記でいうfrontendのディレクトリに差分がある場合のみ、ビルドされる

git diff HEAD^ HEAD --quiet ./packages/frontend/
作成者以外のコメントは許可されていません