66 lines
2.0 KiB
YAML
66 lines
2.0 KiB
YAML
name: 部署 PR 到 Cloudflare Pages
|
|
|
|
on:
|
|
pull_request_target:
|
|
types: [opened, synchronize, reopened, ready_for_review]
|
|
paths:
|
|
- 'docs/**'
|
|
- 'package.json'
|
|
- 'packages/**'
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
preview_url: ${{ steps.deploy.outputs.url }}
|
|
steps:
|
|
# 第一步:检出主仓库代码
|
|
- name: 检出主仓库代码
|
|
uses: actions/checkout@v4
|
|
with:
|
|
ref: ${{ github.event.pull_request.base.ref }}
|
|
fetch-depth: 0
|
|
|
|
# 第二步:检出 PR 修改的部分
|
|
- name: 检出 PR 修改的部分
|
|
run: |
|
|
git fetch origin +refs/pull/${{ github.event.pull_request.number }}/merge
|
|
git checkout -qf FETCH_HEAD
|
|
|
|
# 第三步:安装 pnpm
|
|
- name: 安装 pnpm
|
|
uses: pnpm/action-setup@v4
|
|
|
|
# 第四步:安装依赖
|
|
- name: 安装依赖
|
|
run: pnpm install
|
|
|
|
- name: 更新主题包
|
|
run: pnpm update @project-trans/vitepress-theme-project-trans@prerelease
|
|
|
|
# 第五步:构建项目
|
|
- name: 构建项目
|
|
run: pnpm build # 构建 VitePress 项目
|
|
|
|
# 第六步:安装 Wrangler
|
|
- name: 安装 Wrangler
|
|
run: pnpm add -g wrangler@3 # 安装 Wrangler v3
|
|
|
|
# 第七步:发布到 Cloudflare Pages
|
|
- name: 发布到 Cloudflare Pages
|
|
id: deploy
|
|
uses: cloudflare/pages-action@v1
|
|
with:
|
|
apiToken: ${{ secrets.CLOUDFLARE_PAGES_TOKEN }} # Cloudflare Pages API Token
|
|
accountId: ${{ secrets.CLOUDFLARE_PAGES_ACCOUNT }} # Cloudflare 账户 ID
|
|
projectName: rle-wiki-preview # Cloudflare Pages 项目名称
|
|
directory: docs/.vitepress/dist # 构建输出目录
|
|
|
|
# 第八步:获取预览链接并发送到 PR
|
|
comment_on_pr:
|
|
needs: deploy
|
|
uses: project-trans/actions/.github/workflows/comment-pr-preview-link.yml@main
|
|
secrets: inherit
|
|
with:
|
|
previewUrl: ${{ needs.deploy.outputs.preview_url }}
|