できない.dev

Vercel が git push してもデプロイされない

Vercel のデプロイが push で起動しないのは、Git Integration の切断、Production Branch 未一致、Ignored Build Step での skip、monorepo Root Directory 外の変更が主因。
Project Settings → Git で接続と Production Branch を、Deployments タブで Skipped 表示を確認する。

#vercel#deploy#git#monorepo#webhook

公開:

要約

git push で Vercel デプロイが走らないのは多くの場合 Git 連携の問題か Ignored Build Step の skip
Project Settings → Git で連携と Production Branch を、Deployments タブで Skipped 表示を確認すれば、どの段階で止まっているかが分かる。

よくある原因

  1. 連携切れ: GitHub Org の設定で Vercel App のリポジトリアクセスが外れている
  2. Production Branch 不一致: main に push したが Settings は master のまま
  3. Ignored Build Step: git diff でビルド不要と判定して exit 0 を返しサイレントに skip
  4. monorepo の Root Directory 外: apps/foo の Project に対し apps/bar のみ変更された push
  5. Vercel App の権限漏れ: GitHub 側で Selected repositories を使っており対象が含まれていない

解決策

1. 連携と branch 設定を確認

Project → Settings → Git で以下を確認する(公式 Git Deployments 参照)。

  • Connected Repository が正しい
  • Production Branch が push 先のブランチ名と一致
  • Connected branches に Preview したいブランチが含まれる

2. Deployments タブで状態を見る

Deployments タブで Skipped が表示されていれば Ignored Build Step による skip、ジョブ自体が現れない なら webhook が届いていない。
後者は Vercel App の再連携で直ることが多い。

3. Ignored Build Step を見直す

# Ignored Build Step の例(変更があれば exit 1 でビルド継続)
git diff HEAD^ HEAD --quiet ./ && exit 0 || exit 1

exit 0 でビルドを skip、exit 1 で続行という仕様。
意図と逆になっていないか確認する。

4. monorepo の Root Directory を確認

monorepo の場合、対応 Project の Root Directory 配下に変更が無いとビルドされない。
Turborepo の affected 検出と組み合わせるとさらに堅い。

npx turbo-ignore @your/app

5. GitHub 側の App 権限を再確認

GitHub → Settings → Integrations → Vercel App → Configure → Repository access を開き、All repositories か、Selected repositories で対象リポジトリにチェックが入っているかを確認する。
詳細は公式の Vercel for GitHubを参照。

この記事は役立ちましたか?