Closed10
VercelのIgnored Build Stepを使って、特定のブランチがpushされたときだけプレビュービルドを作成する
ピン留めされたアイテム
このスクラップのまとめを、こちらの記事に清書してもらいました。
Ignored Build Stepを使うと、設定したスクリプトの終了コードが1のときだけ、ビルドが実行されるようにできる。
特定のブランチ(develop)でのみ、ビルドが実行されるようにしたい。
試したコマンドその1
test $(git symbolic-ref --short HEAD) != "develop"
13:16:36.903 Running "test $(git symbolic-ref --short HEAD) != "develop""
13:16:36.907 test: extra argument ‘symbolic-ref’
13:16:37.296 Error: Command failed with exit code 2: test $(git symbolic-ref --short HEAD) != "develop"
13:16:37.296 test: extra argument ‘symbolic-ref’
エラーになる。
試したコマンドその2
test $(git branch --show-current) != "develop"
13:22:07.727 Running "test $(git branch --show-current) != "develop""
13:22:07.733 test: extra argument ‘branch’
13:22:08.139 Error: Command failed with exit code 2: test $(git branch --show-current) != "develop"
13:22:08.139 test: extra argument ‘branch’
エラーになる。
試したコマンドその3
トリガーとなったブランチ名は VERCEL_GIT_COMMIT_REF
に設定されているのでそれを参照する。
test "$VERCEL_GIT_COMMIT_REF" != "develop"
13:34:09.066 Running "test "$VERCEL_GIT_COMMIT_REF" != "develop""
13:34:09.076 The Deployment has been canceled as a result of running the command defined in the "Ignored Build Step" setting.
13:34:10.498 Deployment has been canceled
キャンセルができた。
環境変数の説明
より詳しいスクリプトの書き方の解説記事
この方法では、すべてのブランチでキャンセルされていた 😇
testコマンドでは何をやってもキャンセル(終了コード: 0)になってしまうので、スクリプトを書くしかなさそう。
ほぼサンプル通りだが以下のスクリプトを作成し、Ignored Build Stepのコマンドに bash スクリプト名
を設定することで想定通りの動きとなった。
#!/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
キャンセルされる時
15:40:01.374 Running "bash scripts/vercel-ignore-build-step.sh"
15:40:01.385 🛑 - Build cancelled
ビルドされる時
15:31:26.513 Running "bash scripts/vercel-ignore-build-step.sh"
15:31:26.522 ✅ - Build can proceed
このスクラップは2021/03/19にクローズされました