Files
blog/.gitea/workflows/README.md
bluish 0642d15819
Some checks failed
Deploy to Cloudflare Workers / deploy (push) Failing after 2m10s
自动化部署
2026-01-07 16:57:51 +00:00

3.1 KiB
Raw Permalink Blame History

Gitea Actions 自动部署配置说明

配置步骤

1. 获取 Cloudflare API Token

  1. 登录 Cloudflare Dashboard
  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 文件配置正确:

{
  "name": "my-astro-app",  // 你的 Worker 项目名称
  "compatibility_date": "2026-01-07",
  "assets": {
    "directory": "./dist"
  }
}

4. 启用 Gitea Actions

  1. 确保你的 Gitea 实例已经启用了 Actions 功能
  2. 在仓库设置中确认 Actions 已启用

5. 测试部署

提交并推送代码到 main 分支:

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. 设置 pnpmv9.14.4
  4. 安装依赖
  5. 构建项目(执行 npx astro build
  6. 部署到 Cloudflare Workers执行 npx wrangler deploy

自定义配置

修改触发分支

如果你想在其他分支触发部署,修改 .gitea/workflows/deploy.yml 中的 branches 部分:

on:
  push:
    branches:
      - main
      - production  # 添加其他分支

添加标签触发

on:
  push:
    branches:
      - main
    tags:
      - 'v*'  # 推送 v 开头的标签时触发

添加 Pull Request 触发

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

故障排查

常见问题

  1. 部署失败API Token 无效

    • 检查 Cloudflare API Token 是否正确配置
    • 确认 Token 权限是否足够
  2. 构建失败:依赖安装问题

    • 检查 Node.js 版本是否匹配
    • 确认 pnpm 版本是否正确
  3. 部署失败wrangler 配置错误

    • 检查 wrangler.jsonc 配置是否正确
    • 确认项目名称是否唯一

更多资源