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