mirror of
https://github.com/afoim/fuwari.git
synced 2026-01-31 00:53:19 +08:00
59 lines
1.7 KiB
YAML
59 lines
1.7 KiB
YAML
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}`
|
||
});
|