This commit is contained in:
133
.gitea/workflows/README.md
Normal file
133
.gitea/workflows/README.md
Normal file
@@ -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/)
|
||||||
35
.gitea/workflows/deploy.yml
Normal file
35
.gitea/workflows/deploy.yml
Normal file
@@ -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 }}
|
||||||
Reference in New Issue
Block a user