From f58f22bd7a8c5cc4f27c69e2fac0e9565e954172 Mon Sep 17 00:00:00 2001 From: "peng.li24" <734991033@qq.com> Date: Mon, 14 Sep 2026 09:40:45 +0800 Subject: [PATCH] =?UTF-8?q?release:=20=E6=89=93=E5=8C=85=E6=94=B9=E9=80=92?= =?UTF-8?q?=E5=BD=92=E6=94=B6=E9=9B=86=EF=BC=88=E5=A4=B4/=E5=BA=93?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=8F=91=E7=8E=B0=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 不再逐条列举产物路径,改为递归: - 头:cp -R include/. → 整目录递归,保持子目录层级(新增头自动纳入) - 库:find 构建目录的 lib*.so* / lib*.dylib → lib/(-P 保符号链接) - 可执行:本仓 CLI 显式列出(无可靠判据,且部分仓本就无可执行) 避免漏打包;tar 后仍列内容进日志便于核对。 --- .github/workflows/release.yml | 40 ++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 956bd85..bae39d3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -26,17 +26,18 @@ jobs: v="${GITHUB_REF_NAME}" d="kvlang-abi-$v-linux-x86_64" mkdir -p "$d/include/kvlang" "$d/lib/kvspace" "$d/bin" - cp runtime/include/*.h "$d/include/kvlang/" - # CLI:kvlang(Rust runtime)+ kvlanglayout(layout CLI)+ kvspace(dispatch 前端 CLI,随依赖装入) + # 头(递归):自己的 runtime 头 + deps.json 各依赖的头(/usr/include//) + cp -R runtime/include/. "$d/include/kvlang/" + for h in kvspace blockmalloc slotsboxmalloc; do + [ -d "/usr/include/$h" ] && cp -R "/usr/include/$h" "$d/include/" + done + # 库(递归扫):本仓两个产物 + 依赖顶层库 + 后端库(dispatch 的 dlopen 目录) + find bin layout/target/release -maxdepth 1 \( -name 'lib*.so*' -o -name 'lib*.dylib' \) -exec cp -P {} "$d/lib/" \; + find /usr/lib -maxdepth 1 \( -name 'libblockmalloc.so*' -o -name 'libslotsboxmalloc.so*' \) -exec cp -P {} "$d/lib/" \; + find /usr/lib/kvspace -maxdepth 1 -name '*.so*' -exec cp -P {} "$d/lib/kvspace/" \; + # 可执行:本仓 CLI + 依赖带来的 CLI cp bin/kvlang bin/kvlanglayout "$d/bin/" cp /usr/bin/kvspace "$d/bin/" - # 自带全部 ABI 依赖的头 → 解包即 /usr/include 布局(扩展编译需要 kvspace.h 等) - cp -r /usr/include/kvspace /usr/include/blockmalloc /usr/include/slotsboxmalloc "$d/include/" - cp bin/libkvlang_runtime.so "$d/lib/" - cp layout/target/release/libkvlanglayout.so "$d/lib/" - # 自带全部 ABI 依赖 → 解包即 /usr/lib + /usr/lib/kvspace 布局 - cp /usr/lib/libblockmalloc.so* /usr/lib/libslotsboxmalloc.so* "$d/lib/" - cp /usr/lib/libkvspace.so* /usr/lib/kvspace/libkvspace-c.so* /usr/lib/kvspace/libkvspace_durable.so* "$d/lib/kvspace/" printf '{"abi":"%s"}\n' "$v" > "$d/abi-manifest.json" tar czf "$d.tar.gz" "$d" tar tzf "$d.tar.gz" @@ -105,18 +106,19 @@ jobs: v="${GITHUB_REF_NAME}" d="kvlang-abi-$v-darwin-arm64" mkdir -p "$d/include/kvlang" "$d/lib/kvspace" "$d/bin" - cp runtime/include/*.h "$d/include/kvlang/" - # CLI:kvlang(Rust runtime)+ kvlanglayout(layout CLI)+ kvspace(dispatch 前端 CLI) + # 头(递归):自己的 runtime 头 + 各依赖的头(/usr/local/include//) + cp -R runtime/include/. "$d/include/kvlang/" + for h in kvspace blockmalloc slotsboxmalloc; do + [ -d "/usr/local/include/$h" ] && cp -R "/usr/local/include/$h" "$d/include/" + done + # 库(递归扫):本仓产物 + 依赖顶层 dylib + 后端 dylib(dispatch 的 dlopen 目录) + find bin layout/target/release -maxdepth 1 -name '*.dylib' -exec cp -P {} "$d/lib/" \; + find /usr/local/lib -maxdepth 1 \( -name 'libblockmalloc*.dylib' -o -name 'libslotsboxmalloc*.dylib' \) -exec cp -P {} "$d/lib/" \; + find /usr/local/lib/kvspace -maxdepth 1 -name '*.dylib' -exec cp -P {} "$d/lib/kvspace/" \; + cp /tmp/kvspace-durable/target/release/libkvspace_durable.dylib "$d/lib/kvspace/" + # 可执行:本仓 CLI + 依赖带来的 CLI cp bin/kvlang bin/kvlanglayout "$d/bin/" cp /tmp/kvspace/cli/target/release/kvspace "$d/bin/" - # 自带全部 ABI 依赖的头 → 解包即 /usr/local/include 布局 - cp -r /usr/local/include/kvspace /usr/local/include/blockmalloc /usr/local/include/slotsboxmalloc "$d/include/" - cp bin/libkvlang_runtime.dylib "$d/lib/" - cp layout/target/release/libkvlanglayout.dylib "$d/lib/" - # 自带全部 ABI 依赖 → 解包即 /usr/local/lib + /usr/local/lib/kvspace 布局 - cp /usr/local/lib/libblockmalloc*.dylib /usr/local/lib/libslotsboxmalloc*.dylib "$d/lib/" - cp /usr/local/lib/kvspace/*.dylib "$d/lib/kvspace/" - cp /tmp/kvspace-durable/target/release/libkvspace_durable.dylib "$d/lib/kvspace/" printf '{"abi":"%s"}\n' "$v" > "$d/abi-manifest.json" tar czf "$d.tar.gz" "$d" tar tzf "$d.tar.gz"