fix: 版本变量改 PACKAGE_VERSION、CI 触发 tags['*']、修正静态措辞
Build and Release Mond / build-and-test (amd64) (push) Successful in 1s
Build and Release Mond / build-and-test (arm64) (push) Successful in 35s
Build and Release Mond / release (push) Successful in 16s

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-09 22:30:53 +08:00
co-authored by Claude Opus 4.8
parent 317973e94d
commit 5430297ff9
3 changed files with 14 additions and 15 deletions
+3 -3
View File
@@ -25,8 +25,8 @@ mond 是 Monero 守护进程 `monerod` 的定制换名构建。换名通过 [ini
2. **release**(仅 tag 触发):下载 artifact,上传 tar.gz 到 Generic Package Registry、上传 .deb 到 Debian Registrystable/main),并用 `jq` 生成描述创建 Gitea Release。
关键点:
- **只构建 ubuntu,不做 alpine**与参考项目不同,刻意取舍):mond 用 Monero **官方 depends 系统**`make depends target=…`)交叉编译,产物为纯静态二进制(`ldd` 显示 "not a dynamic executable"),任意发行版可跑,Alpine 无需单独构建;且单次构建耗时 30–60 分钟,加 distro 维度会让 CI 翻倍而无收益
- **版本号约定**:包版本硬编码在 ci.yaml 的 `PACKAGE_VERSION: "0.18.5.0"`(**纯数字、无 v**,符合 Debian 版本规范)。**关键分界**:上游 Monero git tag 带 `v`,故 build job 用 `MONERO_VERSION=v${PACKAGE_VERSION}` 补回 v 传给 Dockerfile `git checkout`tar.gz / deb / registry 路径 / Release 标题等包版本一律直接用 `${PACKAGE_VERSION}`release job 用 `VERSION="${TAG#v}"` 归一发版改 `PACKAGE_VERSION` 并打对应 `v*` tag
- **只构建 ubuntu,不做 alpine**(刻意取舍):mond 用 Monero **官方 depends 系统**`make depends target=…`)交叉编译,将 boost/openssl/zmq 等第三方依赖全部静态链入,**运行时仅动态依赖 glibc**(`ldd` 仍列出 libc/libm/libpthread/ld-linux —— 并非纯静态,故 Alpine/musl 系统无法直接运行)。主分发渠道是面向 Debian/Ubuntu 的 .deb`Depends: libc6 (>= 2.31)`);单次构建耗时 30–60 分钟,加 distro 维度会让 CI 翻倍。若要支持 Alpine 须改用 musl + `-static-pie` 真静态构建(当前未做)
- **版本号约定**:包版本硬编码在 ci.yaml 的 `PACKAGE_VERSION: "0.18.5.0"`(**纯数字、无 v**,符合 Debian 版本规范)。**关键分界**:上游 Monero git tag 带 `v`,故 build job 用 `MONERO_VERSION=v${PACKAGE_VERSION}` 补回 v 传给 Dockerfile `git checkout`tar.gz / deb / registry 路径 / Release 标题等包版本一律直接用 `${PACKAGE_VERSION}`release job 用 `VERSION="${TAG#v}"` 归一(tag 带不带 v 都兼容)。CI 触发条件为 `tags: ['*']`发版改 `PACKAGE_VERSION` 并打对应 tag(纯数字,如 `0.18.5.0`
- **依赖精简**depends 系统已将 boost/openssl/zmq/unbound/sodium/unwind 静态链入,故 [debian/control.template](debian/control.template) 仅 `Depends: libc6`,无需列动态库。
- 架构名映射:Dockerfile 内 `arm64→aarch64-linux-gnu``amd64→x86_64-linux-gnu` 作为 depends target。
- tar.gz 下载 URL 形如 `https://gitea.bcde.io/api/packages/wangdefa/generic/mond/{version}/mond-{arch}-ubuntu-{version}.tar.gz`version 为纯数字)。
@@ -47,7 +47,7 @@ docker buildx build --platform linux/amd64 \
shellcheck debian/*.sh
```
无单元测试;CI 中唯一的冒烟测试是解包后跑 `mond --version` `ldd` 校验纯静态
无单元测试;CI 中唯一的冒烟测试是解包后跑 `mond --version`,并用 `ldd` 校验运行时仅依赖 glibc(无第三方动态库)
## Debian 包布局与服务