Files
craftlabs-authorization-sdk/GITEA_CI_CD.md
T

3.7 KiB
Raw Blame History

Gitea CI/CD 配置指南

1. Gitea Actions Runner 注册

1.1 部署 Runner

# 从 Gitea 管理后台获取 runner 注册令牌
# 位置:站点管理 -> 运行 Actions -> 创建 Runner

# 创建 runner 数据目录
mkdir -p /opt/gitea-runner
cd /opt/gitea-runner

# 下载 act runner
curl -sL https://gitea.com/gitea/act_runner/releases/latest/download/act_runner-linux-amd64 -o act_runner
chmod +x act_runner

# 注册 runner(替换 TOKEN 和 GITEA_URL
./act_runner register \
  --instance https://gitea.craftlabs.cn \
  --token <REGISTRATION_TOKEN> \
  --name craftlabs-runner \
  --labels ubuntu-latest:docker://node:20-bookworm

# 以服务方式运行
./act_runner daemon &

1.2 Runner 标签说明

标签 用途 对应的 workflow runs-on
ubuntu-latest 通用构建和测试 ubuntu-latest

2. 配置 Gitea Secrets

在 Gitea 仓库 Settings -> Secrets 中添加:

Secret 名称 说明
GITEA_REGISTRY_TOKEN Gitea Container Registry 访问令牌
GITEA_REGISTRY_USER Registry 用户名
DB_PASSWORD PostgreSQL 数据库密码
PLATFORM_JWT_SECRET JWT 签名密钥(至少 32 字符)
WEBHOOK_TOKEN Webhook x-bitanswer-token

3. 推送仓库到 Gitea

# 添加 Gitea 远程仓库
git remote add gitea https://gitea.craftlabs.cn/craftlabs/authorization-sdk.git

# 推送到 Gitea
git push -u gitea develop

# 推送到 Gitea 并设为主分支
git push gitea develop:main

4. CI 流程说明

4.1 提交触发

Workflow 触发条件 运行内容
ci-java push/PR to main/develop Maven verify + Native 编译
ci-platform push/PR to main/develop (services/web) Maven verify + npm build
ci-security push/PR to main/develop Trivy 漏洞扫描 + npm audit
deploy push to main 构建 Docker 镜像 → Gitea Registry → docker-compose 部署

4.2 手动触发

Workflow 触发方式
sdk-release-checksums 仓库 Actions 页面手动触发
deploy 仓库 Actions 页面手动触发

5. 部署架构

┌─────────────────────────────────┐
│  Gitea 仓库(craftsupport.cn    │
│  push main → Gitea Actions       │
└──────────┬──────────────────────┘
           │ 触发
┌──────────▼──────────────────────┐
│  Self-Hosted Runner              │
│  ├── mvn package → Docker build │
│  ├── npm build → Docker build   │
│  └── docker compose up -d       │
└──────────┬──────────────────────┘
           │ 部署
┌──────────▼──────────────────────┐
│  部署主机(生产环境)              │
│  ├── PostgreSQL 15               │
│  ├── delivery-platform-api:8080  │
│  ├── license-webhook-ingress:8081│
│  └── delivery-platform-ui:80     │
└─────────────────────────────────┘

6. 环境变量要求

部署时需确保以下环境变量已设置:

# 数据库
SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/craftlabs_platform
SPRING_DATASOURCE_USERNAME=craftlabs
SPRING_DATASOURCE_PASSWORD=<实际密码>

# JWT
PLATFORM_JWT_SECRET=<至少32字符随机密钥>

# Webhook
CRAFTLABS_WEBHOOK_EXPECTED_TOKEN=<与比特控制台一致>