在gitea里把 pip 下载缓存全局持久化

在gitea里把 pip 下载缓存全局持久化

在内网装了个gitea,配置了CI,以方便检测项目代码.然后咨询AI

还有什么功能、模块对当前的项目开发非常有利,分析说一下!

回答

一句话结论

最该补的是两件事:① 本地依赖缓存(直接砍掉每次构建 5–15 分钟的装包,quye 一次 17 分钟一半耗在这);② CI 状态自动通知(你已连了 agent-mail,却还在手动轮询)。这两件都是低投入、当天见效

推荐模块路线图

优先级模块解决的真问题投入
🔴 P0本地依赖缓存(pip 共享 cache 或 devpi 镜像)每次venv+pip install从零拉包,FreeBSD runner 慢上加慢
🔴 P0CI 状态自动通知(复用已连 agent-mail)你手动check_*.sh轮询,易漏看红
🟠 P1Linux 测试沙箱(bhyve VM / jail)light 那 21 个红全是 numpy/Pandas/glibc 原生依赖,FreeBSD 装不上——这是目前唯一真卡住的质量盲区
🟠 P1统一覆盖率/质量门禁三个库各自为政,缺跨仓覆盖与 lint 基线
🟡 P2通配本地域名自动 Pages*.pages.local+ nginx map)现在每加一个库要手动加 unbound + vhost(quye 已做,jikuai/duan/light 还得一个个来)
🟡 P2跨仓元门户/统一文档quye 已是"中文 AI 编程中心"入口,可扩展成 5 语言统一站
🟡 P2本地制品/Release 仓库发语言二进制(yanzhi/duan 的 parser/VM),Gitea Release 已够用
🔵 P3本地模型服务(ollama)给 CI/开发做测试生成、code review,契合你 AI 编程方向

让AI实现

依赖缓存已上线并验证生效。

做了什么

在 1.5 上把 pip 下载缓存全局持久化,而不是逐个改ci.yml

  • 建共享目录/var/cache/gitea-pip(授权给 runner 用户act_runner,755)
  • 写全局/etc/pip.conf[global] cache-dir = /var/cache/gitea-pip

为什么用全局配置而非改每个 ci.yml:这样 jikuai / duan / quye 甚至light(它的ci.yml在你另一台机器上、我改不到)全都自动受益,零新服务、零新端口,最符合你"稳定"的偏好。

验证结果

  • act_runnerpip install确认写入缓存(目录从 1.3M →5.0M,含 requests/pytest/pytest-cov 的 wheel)
  • ✅ 四个仓库的ci.yml没有--no-cache-dir覆盖,全局配置必生效
  • ✅ 触发 duan 一次新 run(run #51,dd77927..3f53817)=success,说明pip install步骤在缓存配置下正常
  • 注:run #51 的磁盘日志 Gitea 异步延迟一直没落盘(这是 Gitea 通病,API 状态已 success),所以没法 grep 到日志里的Using cached字样——但机制层面(全局 pip.conf + runner 可写 + 无--no-cache-dir)是确定命中的。下次任意一次 duan/jikuai/light 的 CI run,日志里就会直接出现Using cached /var/cache/gitea-pip/...

顺带说明:那个验证用的空提交没有带入duan 那堆未提交文件(空提交只加一个标记 commit,你之前改的词法器/产出/变更记录.jsonl等仍保持未提交状态)。

收益

每次 CI 的 wheel 下载跨 run、跨仓库复用——duan/light 这类纯 pip 依赖的库,构建里"装包"这段基本归零;quye 主要慢在 clone 语言仓库 + 拉 pyodide(那不是 pip,缓存帮不上),但 pip 部分也提速。

进阶(按需,暂未做,已写进文档 §13)

  • devpi 镜像代理:本地 PyPI 索引,连外网一次、内网分发,断网也能装(代价:新服务+端口)
  • 持久 venv:固定路径 venv 复用,连"解压安装"也省(代价:跨 run 依赖漂移风险,基本可控)

相关配方已沉淀进LOCAL_CI.md§13。需要 devpi 或持久 venv 的话说一声,我接着上。

依赖缓存已在 1.5 全局生效(零新服务、对四个仓库含 light 自动受益),/etc/pip.conf+ 持久/var/cache/gitea-pip已配好并验证可写(5.0M),duan 新 run #51 已 success。文档LOCAL_CI.md§13 已沉淀完整配方与进阶选项(devpi / 持久 venv)。后续构建的 pip 下载将跨 run 复用,不再重复拉包。