如何配置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
相关产品推荐
相关产品推荐

