feat(ci): 迁移到 hk runner + Release 产物分发,解除对 doc79 runner 的依赖
Publish Mini Program Dev Version / publish (push) Canceled after 0s
Build and Publish Server / build (push) Canceled after 0s

- 两个工作流 runs-on 改为 hk(在线);Go/Node 工具链自包含下载+工作区缓存
- 后端产物改为发布 Gitea Release 附件(server-v<版本>),与 runner 位置解耦
- deploy-watch.sh 重写为从 Release 拉取:匿名/令牌 HTTPS 下载、包结构预检、
  按 release id 幂等、失败下轮重试
- 移除对 /ci-artifacts 本机目录的依赖(原设计要求 runner 与生产同机)
- PULL_DEPLOY.md 架构图同步更新
This commit is contained in:
gouki
2026-08-09 17:17:23 +00:00
parent fc7a30ad9d
commit b507d6c154
4 changed files with 191 additions and 75 deletions
+9 -2
View File
@@ -7,13 +7,18 @@
## 架构
```
push main → Gitea Actions 构建runner 与 doc79 同机)→ 产物写入 /ci-artifacts
push main → Gitea Actionshk runner 构建)→ 部署包发布为 Gitea Release 附件
1Panel 计划任务(每分钟)运行 deploy-watch.sh → 发现新 sha256 → deploy.sh 原子切换 + 重启容器 + 健康检查
1Panel 计划任务(每分钟)运行 deploy-watch.sh → 发现新 release → HTTPS 拉取 deploy.tar.gz
deploy.sh 原子切换 + 重启容器 + 健康检查(失败自动回滚)
EdgeOne CDN (HTTPS 终结) → doc79:80 → 1Panel OpenResty 反代 → 127.0.0.1:8080 lunar-server 容器
```
> 产物通过 Gitea Release 分发,与 runner 位置解耦(hk/bt 均可构建);
> 服务器侧只出站 HTTPS 拉取,无任何入站 SSH。
## 一次性安装步骤(按序执行)
### 1. EdgeOne 回源配置(控制台)
@@ -87,6 +92,8 @@ ADMIN_PASSWORD=<后台登录密码>
- 脚本内容:
```bash
# 可选:若仓库私有或需要令牌拉取,在 .env 中配置 GITEA_DEPLOY_TOKEN
[ -f /opt/lunar/production/.env ] && set -a && . /opt/lunar/production/.env && set +a
bash /opt/lunar/scripts/deploy-watch.sh
```