Skip to content

Commit 10213b5

Browse files
authored
Merge pull request #341 from array2d/feat/release-recursive-collect
release: 打包改递归收集(头/库自动发现)
2 parents b19546e + f58f22b commit 10213b5

1 file changed

Lines changed: 21 additions & 19 deletions

File tree

.github/workflows/release.yml

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,18 @@ jobs:
2626
v="${GITHUB_REF_NAME}"
2727
d="kvlang-abi-$v-linux-x86_64"
2828
mkdir -p "$d/include/kvlang" "$d/lib/kvspace" "$d/bin"
29-
cp runtime/include/*.h "$d/include/kvlang/"
30-
# CLI:kvlang(Rust runtime)+ kvlanglayout(layout CLI)+ kvspace(dispatch 前端 CLI,随依赖装入)
29+
# 头(递归):自己的 runtime 头 + deps.json 各依赖的头(/usr/include/<repo>/)
30+
cp -R runtime/include/. "$d/include/kvlang/"
31+
for h in kvspace blockmalloc slotsboxmalloc; do
32+
[ -d "/usr/include/$h" ] && cp -R "/usr/include/$h" "$d/include/"
33+
done
34+
# 库(递归扫):本仓两个产物 + 依赖顶层库 + 后端库(dispatch 的 dlopen 目录)
35+
find bin layout/target/release -maxdepth 1 \( -name 'lib*.so*' -o -name 'lib*.dylib' \) -exec cp -P {} "$d/lib/" \;
36+
find /usr/lib -maxdepth 1 \( -name 'libblockmalloc.so*' -o -name 'libslotsboxmalloc.so*' \) -exec cp -P {} "$d/lib/" \;
37+
find /usr/lib/kvspace -maxdepth 1 -name '*.so*' -exec cp -P {} "$d/lib/kvspace/" \;
38+
# 可执行:本仓 CLI + 依赖带来的 CLI
3139
cp bin/kvlang bin/kvlanglayout "$d/bin/"
3240
cp /usr/bin/kvspace "$d/bin/"
33-
# 自带全部 ABI 依赖的头 → 解包即 /usr/include 布局(扩展编译需要 kvspace.h 等)
34-
cp -r /usr/include/kvspace /usr/include/blockmalloc /usr/include/slotsboxmalloc "$d/include/"
35-
cp bin/libkvlang_runtime.so "$d/lib/"
36-
cp layout/target/release/libkvlanglayout.so "$d/lib/"
37-
# 自带全部 ABI 依赖 → 解包即 /usr/lib + /usr/lib/kvspace 布局
38-
cp /usr/lib/libblockmalloc.so* /usr/lib/libslotsboxmalloc.so* "$d/lib/"
39-
cp /usr/lib/libkvspace.so* /usr/lib/kvspace/libkvspace-c.so* /usr/lib/kvspace/libkvspace_durable.so* "$d/lib/kvspace/"
4041
printf '{"abi":"%s"}\n' "$v" > "$d/abi-manifest.json"
4142
tar czf "$d.tar.gz" "$d"
4243
tar tzf "$d.tar.gz"
@@ -105,18 +106,19 @@ jobs:
105106
v="${GITHUB_REF_NAME}"
106107
d="kvlang-abi-$v-darwin-arm64"
107108
mkdir -p "$d/include/kvlang" "$d/lib/kvspace" "$d/bin"
108-
cp runtime/include/*.h "$d/include/kvlang/"
109-
# CLI:kvlang(Rust runtime)+ kvlanglayout(layout CLI)+ kvspace(dispatch 前端 CLI)
109+
# 头(递归):自己的 runtime 头 + 各依赖的头(/usr/local/include/<repo>/)
110+
cp -R runtime/include/. "$d/include/kvlang/"
111+
for h in kvspace blockmalloc slotsboxmalloc; do
112+
[ -d "/usr/local/include/$h" ] && cp -R "/usr/local/include/$h" "$d/include/"
113+
done
114+
# 库(递归扫):本仓产物 + 依赖顶层 dylib + 后端 dylib(dispatch 的 dlopen 目录)
115+
find bin layout/target/release -maxdepth 1 -name '*.dylib' -exec cp -P {} "$d/lib/" \;
116+
find /usr/local/lib -maxdepth 1 \( -name 'libblockmalloc*.dylib' -o -name 'libslotsboxmalloc*.dylib' \) -exec cp -P {} "$d/lib/" \;
117+
find /usr/local/lib/kvspace -maxdepth 1 -name '*.dylib' -exec cp -P {} "$d/lib/kvspace/" \;
118+
cp /tmp/kvspace-durable/target/release/libkvspace_durable.dylib "$d/lib/kvspace/"
119+
# 可执行:本仓 CLI + 依赖带来的 CLI
110120
cp bin/kvlang bin/kvlanglayout "$d/bin/"
111121
cp /tmp/kvspace/cli/target/release/kvspace "$d/bin/"
112-
# 自带全部 ABI 依赖的头 → 解包即 /usr/local/include 布局
113-
cp -r /usr/local/include/kvspace /usr/local/include/blockmalloc /usr/local/include/slotsboxmalloc "$d/include/"
114-
cp bin/libkvlang_runtime.dylib "$d/lib/"
115-
cp layout/target/release/libkvlanglayout.dylib "$d/lib/"
116-
# 自带全部 ABI 依赖 → 解包即 /usr/local/lib + /usr/local/lib/kvspace 布局
117-
cp /usr/local/lib/libblockmalloc*.dylib /usr/local/lib/libslotsboxmalloc*.dylib "$d/lib/"
118-
cp /usr/local/lib/kvspace/*.dylib "$d/lib/kvspace/"
119-
cp /tmp/kvspace-durable/target/release/libkvspace_durable.dylib "$d/lib/kvspace/"
120122
printf '{"abi":"%s"}\n' "$v" > "$d/abi-manifest.json"
121123
tar czf "$d.tar.gz" "$d"
122124
tar tzf "$d.tar.gz"

0 commit comments

Comments
 (0)