添加部署 PR 到 Cloudflare Pages 的工作流 (#428)
parent
75cef0f2a6
commit
915085637c
|
@ -0,0 +1,66 @@
|
||||||
|
name: 部署 PR 到 Cloudflare Pages
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request_target:
|
||||||
|
types: [opened, synchronize, reopened] # 当 PR 被创建、更新或重新打开时触发
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
# 第一步:检出主仓库代码
|
||||||
|
- name: 检出主仓库代码
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
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@v3
|
||||||
|
with:
|
||||||
|
version: latest
|
||||||
|
|
||||||
|
# 第四步:安装依赖
|
||||||
|
- name: 安装依赖
|
||||||
|
run: pnpm install
|
||||||
|
|
||||||
|
# 第五步:构建项目
|
||||||
|
- 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
|
||||||
|
- name: 评论 PR 部署链接
|
||||||
|
uses: actions/github-script@v6
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const prNumber = context.payload.pull_request.number;
|
||||||
|
const previewUrl = `${{ steps.deploy.outputs.url }}`;
|
||||||
|
const comment = `🚀 预览部署完成! 访问链接: ${previewUrl}`;
|
||||||
|
github.rest.issues.createComment({
|
||||||
|
issue_number: prNumber,
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
body: comment,
|
||||||
|
});
|
Loading…
Reference in New Issue