From 192e63cf5287a7993c51f425a1d68074a449c441 Mon Sep 17 00:00:00 2001 From: JianFeeeee Date: Tue, 29 Sep 2026 14:39:08 +0800 Subject: [PATCH] =?UTF-8?q?ci(release):=20gh=20release=20download=20?= =?UTF-8?q?=E9=9C=80=E6=98=BE=E5=BC=8F=20--repo=EF=BC=88=E9=9D=9E=20git=20?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E6=97=A0=E6=B3=95=E6=8E=A8=E6=96=AD=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 症状(第三次试发布) Build 全绿、tag 已建、release 已建、2.40GB 附件全部上传成功 —— 唯独最后一道「回读校验」失败,整个 workflow 因此标记为 failure: failed to run git: fatal: not a git repository (or any of the parent directories): .git ##[error]Process completed with exit code 1. ## 根因 回读校验为了"下一份干净副本"先 `cd /tmp/back`,那里不是 git 仓库。 而 `gh release download` 默认从**当前目录的 git 上下文**推断仓库与 host(GITHUB_REPOSITORY / GH_HOST 之类环境变量不足以让它跳过推断), 于是报 "not a git repository"。 ## 修法 gh release download "$TAG" --repo "$GITHUB_REPOSITORY" 两个仓的 workflow 都有同一处(主仓 + SDK),一并修。 ## 顺带 `third_party/homeagent-sdk/.github/` 加入 .gitignore —— 与 skills/ 同类: SDK 仓自己的 workflow 由 SDK 仓跟踪管理(那边已跟踪),本仓不参与 构建,不需要在这边重复一份。未加规则时它会出现在本仓的未跟踪列表里。 --- .github/workflows/release.yml | 7 ++++++- .gitignore | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2b891ca..a9579ee 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -329,7 +329,12 @@ jobs: set -euo pipefail mkdir -p /tmp/back cd /tmp/back - gh release download "$TAG" + # ★ 必须显式 --repo:gh 默认从**当前目录的 git 上下文**推断仓库, + # 而 /tmp/back 不是 git 仓库 ⇒ 报 + # "failed to run git: fatal: not a git repository"。 + # 首次试发布就死在这里 —— 产物其实全部上传成功(tag 与 + # release 已建、2.40GB 附件齐备),只是这道回读校验自己失败了。 + gh release download "$TAG" --repo "$GITHUB_REPOSITORY" for f in *; do printf " %8.1fMB %s\n" \ "$(stat -c %s "$f" | awk '{print $1/1048576}')" "$f" diff --git a/.gitignore b/.gitignore index 2d9c5cd..e0ebef0 100644 --- a/.gitignore +++ b/.gitignore @@ -36,6 +36,9 @@ third_party/homeagent-sdk/scripts/ # skills/ 是 SDK 仓的 skill 源(hmapdev skill install 的来源), # 与 tools/、docs/ 同理属 SDK 仓自治范围,不进本仓。 third_party/homeagent-sdk/skills/ +# .github/ 同理:SDK 仓的 workflow 由 SDK 仓自己管(它在那边被跟踪), +# 本仓不参与构建,不需要在这边重复一份。 +third_party/homeagent-sdk/.github/ third_party/homeagent-sdk/.gitignore third_party/homeagent-sdk/README* third_party/homeagent-sdk/example/