Files
fuwari/.github/workflows/pr.yml
afoim bf1455fada ci: 添加PR预览部署的GitHub Actions工作流
添加新的工作流文件用于在PR创建/更新时自动构建并部署预览到Cloudflare Pages,同时将预览链接评论到PR中
2025-08-13 13:32:33 +08:00

59 lines
1.7 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: PR Preview Deploy
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
# 1. 拉取 PR 分支代码(支持 fork
- name: Checkout PR code
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
# 2. 安装 pnpm
- name: Install pnpm
uses: pnpm/action-setup@v3
with:
version: 9
# 3. 安装依赖
- name: Install dependencies
run: pnpm install --frozen-lockfile
# 4. 构建站点
- name: Build site
run: pnpm build # 构建产物目录确保是 ./dist 或自行修改
# 5. 安装 Wrangler CLI
- name: Install Wrangler CLI
run: pnpm add -g wrangler
# 6. 部署到 Cloudflare Pages
- name: Deploy to Cloudflare Pages
run: |
BRANCH_NAME=pr-${{ github.event.pull_request.number }}
wrangler pages deploy ./dist \
--project-name=${{ secrets.CLOUDFLARE_PROJECT_NAME }} \
--branch=$BRANCH_NAME \
--account-id=${{ secrets.CLOUDFLARE_ACCOUNT_ID }} \
--api-token=${{ secrets.CLOUDFLARE_API_TOKEN }}
# 7. 在 PR 评论区贴出预览链接
- name: Comment Preview URL
uses: actions/github-script@v7
with:
script: |
const prNumber = context.payload.pull_request.number;
const previewUrl = `https://${{ secrets.CLOUDFLARE_PROJECT_NAME }}--pr-${prNumber}.pages.dev`;
github.rest.issues.createComment({
issue_number: prNumber,
owner: context.repo.owner,
repo: context.repo.repo,
body: `✅ 预览已部署: ${previewUrl}`
});