From 0642d158191d7cf2e8e41d3e22f7fbdf7edc2b15 Mon Sep 17 00:00:00 2001 From: bluish <734499798@qq.com> Date: Wed, 7 Jan 2026 16:57:51 +0000 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=8C=96=E9=83=A8=E7=BD=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/README.md | 133 ++++++++++++++++++++++++++++++++++++ .gitea/workflows/deploy.yml | 35 ++++++++++ 2 files changed, 168 insertions(+) create mode 100644 .gitea/workflows/README.md create mode 100644 .gitea/workflows/deploy.yml diff --git a/.gitea/workflows/README.md b/.gitea/workflows/README.md new file mode 100644 index 0000000..1777f23 --- /dev/null +++ b/.gitea/workflows/README.md @@ -0,0 +1,133 @@ +# Gitea Actions 自动部署配置说明 + +## 配置步骤 + +### 1. 获取 Cloudflare API Token + +1. 登录 [Cloudflare Dashboard](https://dash.cloudflare.com/) +2. 点击右上角的个人头像 → **My Profile** +3. 选择 **API Tokens** 标签 +4. 点击 **Create Token** +5. 选择 **Edit Cloudflare Workers** 模板,或者创建自定义 token 并授予以下权限: + - Account - Cloudflare Workers Scripts: Edit + - Account - Cloudflare Workers KV Storage: Edit (如果使用 KV) + - Zone - Workers Routes: Edit (如果需要配置路由) +6. 复制生成的 API Token(只会显示一次) + +### 2. 在 Gitea 中配置 Secret + +1. 进入你的 Gitea 仓库 +2. 点击 **Settings(设置)** +3. 在左侧菜单中选择 **Secrets(密钥)** +4. 点击 **Add Secret** +5. 填写: + - **Name**: `CLOUDFLARE_API_TOKEN` + - **Value**: 粘贴你从 Cloudflare 获取的 API Token +6. 点击保存 + +### 3. 配置 wrangler.jsonc + +确保你的 `wrangler.jsonc` 文件配置正确: + +```jsonc +{ + "name": "my-astro-app", // 你的 Worker 项目名称 + "compatibility_date": "2026-01-07", + "assets": { + "directory": "./dist" + } +} +``` + +### 4. 启用 Gitea Actions + +1. 确保你的 Gitea 实例已经启用了 Actions 功能 +2. 在仓库设置中确认 Actions 已启用 + +### 5. 测试部署 + +提交并推送代码到 `main` 分支: + +```bash +git add .gitea/workflows/deploy.yml +git commit -m "Add Cloudflare Workers deployment workflow" +git push origin main +``` + +### 6. 查看部署状态 + +1. 在 Gitea 仓库页面,点击 **Actions** 标签 +2. 查看工作流运行状态 +3. 点击具体的运行记录可以查看详细日志 + +## 工作流说明 + +当前配置的工作流会在以下情况触发: +- 推送代码到 `main` 分支 + +工作流执行步骤: +1. 检出代码 +2. 设置 Node.js 环境(v20) +3. 设置 pnpm(v9.14.4) +4. 安装依赖 +5. 构建项目(执行 `npx astro build`) +6. 部署到 Cloudflare Workers(执行 `npx wrangler deploy`) + +## 自定义配置 + +### 修改触发分支 + +如果你想在其他分支触发部署,修改 `.gitea/workflows/deploy.yml` 中的 `branches` 部分: + +```yaml +on: + push: + branches: + - main + - production # 添加其他分支 +``` + +### 添加标签触发 + +```yaml +on: + push: + branches: + - main + tags: + - 'v*' # 推送 v 开头的标签时触发 +``` + +### 添加 Pull Request 触发 + +```yaml +on: + push: + branches: + - main + pull_request: + branches: + - main +``` + +## 故障排查 + +### 常见问题 + +1. **部署失败:API Token 无效** + - 检查 Cloudflare API Token 是否正确配置 + - 确认 Token 权限是否足够 + +2. **构建失败:依赖安装问题** + - 检查 Node.js 版本是否匹配 + - 确认 pnpm 版本是否正确 + +3. **部署失败:wrangler 配置错误** + - 检查 `wrangler.jsonc` 配置是否正确 + - 确认项目名称是否唯一 + +## 更多资源 + +- [Gitea Actions 文档](https://docs.gitea.com/usage/actions/overview) +- [Cloudflare Workers 文档](https://developers.cloudflare.com/workers/) +- [Wrangler CLI 文档](https://developers.cloudflare.com/workers/wrangler/) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..b817393 --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,35 @@ +name: Deploy to Cloudflare Workers + +on: + push: + branches: + - main # 当推送到 main 分支时触发 + +jobs: + deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' # 使用 Node.js 20,你可以根据需要调整版本 + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 9.14.4 # 使用 package.json 中指定的 pnpm 版本 + + - name: Install dependencies + run: pnpm install + + - name: Build project + run: npx astro build + + - name: Deploy to Cloudflare Workers + run: npx wrangler deploy + env: + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}