# 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/)