Some checks failed
Deploy to Cloudflare Workers / deploy (push) Failing after 2m10s
134 lines
3.1 KiB
Markdown
134 lines
3.1 KiB
Markdown
# 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/)
|