You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Vercel仅为已开PR触发预览构建及分支判断方法

配置Vercel仅PR相关提交触发预览构建 + Bash分支PR判断方案

一、限制Vercel预览构建触发时机

方法1:通过Vercel控制台设置

  • 进入项目的「Settings」→「Git」页面
  • 在「Preview Deployments」模块,将「Trigger Preview Deployments」设置为「Only pull requests」
  • 保存后,仅当创建PR或PR内有新提交时,Vercel才会生成预览部署,普通分支推送将被忽略

方法2:通过vercel.json配置

在项目根目录创建/修改vercel.json,添加以下规则:

{
  "ignore": "!${VERCEL_GIT_PULL_REQUEST_ID}"
}

Vercel会自动识别PR场景下的VERCEL_GIT_PULL_REQUEST_ID环境变量,只有该变量存在时才会执行构建,否则跳过。

二、Bash脚本判断当前分支是否关联活跃PR

利用GitHub API结合curl和jq(JSON解析工具)实现,示例脚本如下:

#!/bin/bash

# 获取当前本地分支名称
BRANCH=$(git rev-parse --abbrev-ref HEAD)
# 替换为你的GitHub仓库格式:owner/repository
REPO="your-username/your-repo"

# 调用API查询该分支关联的开放状态PR
OPEN_PR=$(curl -s "https://api.github.com/repos/$REPO/pulls?head=$BRANCH&state=open")

# 判断是否存在活跃PR
if [ $(echo "$OPEN_PR" | jq 'length') -gt 0 ]; then
  echo "分支 $BRANCH 关联活跃PR"
  # 可选:提取PR编号等信息
  PR_NUMBER=$(echo "$OPEN_PR" | jq '.[0].number')
  echo "PR编号:$PR_NUMBER"
else
  echo "分支 $BRANCH 未关联活跃PR"
fi

注意点

  • 若仓库为私有,需在curl命令中添加授权头:-H "Authorization: token YOUR_GITHUB_TOKEN"
  • 若没有jq,也可以用grep '"state": "open"'做简单判断,但jq的解析更可靠

内容的提问来源于stack exchange,提问作者Petr Klein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 00:44:56