From 0414fb6db6b14fab89f2fd22fa4360d0396254bb Mon Sep 17 00:00:00 2001 From: argszero Date: Wed, 5 Aug 2026 01:45:02 +0800 Subject: [PATCH] =?UTF-8?q?emrg:=20build-release=20=E5=8D=81=E4=B8=89?= =?UTF-8?q?=E6=AC=A1=E4=BF=AE=E5=A4=8D=20=E2=80=94=20Windows=20gh.exe=20?= =?UTF-8?q?=E8=A7=A3=E5=8E=8B=E6=8E=A2=E6=B5=8B=EF=BC=88rant=20#13?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 第 13 次实跑:3/4 平台成功,Windows build-runtime 已通过(DLL 修复生效, runtime built OK 89M),新失败在 bundle-git-gh.sh:chmod bin/gh 失败。 根因:Windows gh zip 内可执行文件名为 gh.exe(不是 gh)。第 60 行 `find -name gh -type f` 在 Windows 找不到 → xargs 不执行 → /bin/gh 不存在 → chmod exit 1。且 Windows 目标名需为 gh.exe (PATH 注入后命令解析需要 .exe)。 修复:find 同时探测 gh 与 gh.exe;目标名按平台——windows → bin/gh.exe, 其他 → bin/gh;找不到可执行文件时显式报错退出。 验证: - bash -n OK - Windows(gh.exe 存在 → 目标 gh.exe)/ POSIX(gh → 目标 gh)逻辑正确 - pytest 464 passed;import checks OK --- packaging/bundle-git-gh.sh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packaging/bundle-git-gh.sh b/packaging/bundle-git-gh.sh index 3f589225..c44f4cfd 100755 --- a/packaging/bundle-git-gh.sh +++ b/packaging/bundle-git-gh.sh @@ -57,8 +57,16 @@ else else unzip -q "$TMP/gh.archive" -d "$TMP" fi - find "$TMP" -name gh -type f | head -1 | xargs -I{} cp {} "$RUNTIME/bin/gh" - chmod +x "$RUNTIME/bin/gh" + # Windows zip 内可执行文件为 gh.exe(find -name gh 找不到 → bin/gh 缺失) + GH_EXE="$(find "$TMP" \( -name gh -o -name gh.exe \) -type f | head -1)" + if [ -z "$GH_EXE" ]; then + echo "!! gh executable not found in archive" >&2 + exit 1 + fi + GH_TARGET="$RUNTIME/bin/gh" + case "$GH_OS" in windows) GH_TARGET="$RUNTIME/bin/gh.exe" ;; esac + cp "$GH_EXE" "$GH_TARGET" + chmod +x "$GH_TARGET" rm -rf "$TMP" fi