<!-- Generated by SpecStory -->

# 创建 ci 触发 vercel 部署 (2025-06-05 01:43:50)

_**User**_

写一个 ci，当这个仓库main 分支下面的  thumbnails 目录和 photos-manifest.json 文件发生改变就触发vercel 的 Triggering a Deploy Hook

{"projectId":"prj_yDJoObd0nIz4IIXfJAtiF3jxq1kh","orgId":"team_STJ8HgR2zGzXxYtHG94Tv1tT"}

---

_**Assistant**_

我需要为你创建一个 GitHub Actions CI 工作流，当 `main` 分支的 `thumbnails` 目录或 `photos-manifest.json` 文件发生变化时，触发 Vercel 的部署钩子。

---

```diff
- 
+ name: Deploy to Vercel on Assets Change
+ 
+ on:
+   push:
+     branches:
+       - main
+     paths:
+       - 'thumbnails/**'
+       - 'photos-manifest.json'
+ 
+ jobs:
+   trigger-vercel-deploy:
+     runs-on: ubuntu-latest
+     
+     steps:
+       - name: Checkout code
+         uses: actions/checkout@v4
+         
+       - name: Check for changes
+         id: changes
+         run: |
+           echo "Changes detected in thumbnails directory or photos-manifest.json"
+           echo "Triggering Vercel deployment..."
+           
+       - name: Trigger Vercel Deploy Hook
+         env:
+           VERCEL_PROJECT_ID: prj_yDJoObd0nIz4IIXfJAtiF3jxq1kh
+           VERCEL_ORG_ID: team_STJ8HgR2zGzXxYtHG94Tv1tT
+         run: |
+           curl -X POST "https://api.vercel.com/v1/integrations/deploy/${{ env.VERCEL_PROJECT_ID }}/${{ github.ref_name }}" \
+             -H "Authorization: Bearer ${{ secrets.VERCEL_TOKEN }}" \
+             -H "Content-Type: application/json" \
+             -d '{
+               "name": "deploy-hook-trigger",
+               "target": "production"
+             }'
+             
+       - name: Deployment Status
+         run: |
+           echo "✅ Vercel deployment hook triggered successfully"
+           echo "🚀 Project ID: ${{ env.VERCEL_PROJECT_ID }}"
+           echo "📦 Organization ID: ${{ env.VERCEL_ORG_ID }}"
+           echo "🌿 Branch: ${{ github.ref_name }}"
+ 
```

---

我已经为你创建了一个完整的 GitHub Actions CI 工作流。这个工作流具有以下特性：

## 🔥 触发条件
- **分支**: 仅在 `main` 分支上触发
- **路径**: 仅当以下文件/目录发生变化时触发：
  - `thumbnails/**` (thumbnails 目录下的任何文件)
  - `photos-manifest.json` 文件

## 🚀 功能特点
1. **自动检测变化**: 当指定的文件或目录发生变化时自动触发
2. **Vercel 部署钩子**: 使用你提供的项目 ID 和组织 ID 调用 Vercel API
3. **详细日志**: 提供清晰的部署状态和信息输出

## ⚙️ 需要配置的 Secret
在你的 GitHub 仓库中，需要添加一个 Secret：

1. 进入 GitHub 仓库设置
2. 找到 "Secrets and variables" → "Actions"
3. 添加一个新的 Repository Secret：
   - **Name**: `VERCEL_TOKEN`
   - **Value**: 你的 Vercel API Token

## 📝 获取 Vercel Token
如果你还没有 Vercel Token，可以这样获取：
1. 登录 [Vercel Dashboard](https://vercel.com/dashboard)
2. 进入 Settings → Tokens
3. 创建一个新的 Token 并复制它

这样设置后，每当你向 `main` 分支推送涉及 `thumbnails` 目录或 `photos-manifest.json` 文件的更改时，就会自动触发 Vercel 的重新部署。

---

