如何在GitHub Actions中获取Vercel部署ID
在GitHub Actions中获取Vercel部署ID的方法及相关API说明
一、从Vercel CLI输出中直接提取部署ID
你当前的部署命令仅捕获了部署URL,可通过调整Vercel CLI的输出格式,直接获取部署ID:
- 修改部署流程,添加
--json参数让CLI输出JSON格式的完整部署详情:
# 保留原构建命令 vercel build --debug # 执行部署并获取JSON格式的部署信息 DEPLOYMENT_INFO=$(vercel deploy --prebuilt --yes --json) # 用jq工具分别提取部署URL和部署ID(需确保环境已安装jq) DEPLOYMENT_URL=$(echo "$DEPLOYMENT_INFO" | jq -r '.url') DEPLOYMENT_ID=$(echo "$DEPLOYMENT_INFO" | jq -r '.id') # 将变量输出到GitHub Actions的环境变量中 echo "DEPLOYMENT_URL=${DEPLOYMENT_URL}" >> "$GITHUB_OUTPUT" echo "DEPLOYMENT_ID=${DEPLOYMENT_ID}" >> "$GITHUB_OUTPUT"
- 注意事项:
- GitHub Actions的Ubuntu runner默认未安装jq,可在步骤前添加安装命令:
sudo apt-get install -y jq;macOS runner则用brew install jq。 - 确保使用的Vercel CLI版本支持
--json参数(v28+版本均支持)。
- GitHub Actions的Ubuntu runner默认未安装jq,可在步骤前添加安装命令:
二、使用Vercel API获取部署ID
Vercel官方提供了直接查询部署信息的API,可用于获取部署ID:
1. 核心API调用方式
获取项目最新部署ID:通过项目ID查询最近的部署记录,直接提取ID
# 替换{PROJECT_ID}为你的Vercel项目ID,VERCEL_TOKEN需提前配置在GitHub Secrets中 curl -H "Authorization: Bearer $VERCEL_TOKEN" \ "https://api.vercel.com/v9/projects/{PROJECT_ID}/deployments?limit=1" \ | jq -r '.deployments[0].id'根据部署URL反向查询:若已有部署URL,可通过List Deployments接口过滤匹配的URL获取对应ID,但该方式需遍历结果,效率不如直接从CLI获取。
2. 授权说明
调用Vercel API需要有效的访问令牌(VERCEL_TOKEN),可在Vercel账户的「Settings > Tokens」页面生成,之后添加到GitHub仓库的Secrets中,在Actions中通过${{ secrets.VERCEL_TOKEN }}引用。
内容的提问来源于stack exchange,提问作者Shivam Srivastava
相关产品推荐
相关产品推荐

