소스 검색

fix(tool-trunk-checker): xargs 分批调用 trunk, 修复根仓库参数过长失败

根仓库 3 万+ 文件时, "${TRUNK_BIN} check ${ALL_FILES}" 展开 argv 约 2.8MB,
超过 ARG_MAX(2MB) 触发 E2BIG(Argument list too long), 根仓库质量门禁不可用。
改为 printf|xargs -d '\n' -r -s 131072 按字节上限自动分批; 任一批次失败整体失败。

backlog #28
b 1 개월 전
부모
커밋
fe7061f6b2
1개의 변경된 파일과 5개의 추가작업 그리고 1개의 파일을 삭제
  1. 5 1
      tool-trunk-checker.sh

+ 5 - 1
tool-trunk-checker.sh

@@ -196,7 +196,11 @@ cd "${REPO_ROOT}" || exit
 # 运行trunk check检查代码质量(已禁用安全扫描类工具,仅纯代码质量/格式检查)
 echo ""
 echo "🔍 正在运行代码质量检查..."
-if ! "${TRUNK_BIN}" check ${ALL_FILES}; then
+# 文件数量过多时,直接以 ${ALL_FILES} 展开成 argv 会超过 ARG_MAX(如根仓库 3 万+ 文件
+# ≈ 2.8MB > 2MB),触发 "Argument list too long"(E2BIG)。
+# 改为换行分隔经 xargs 按字节上限自动分批调用;任一批次失败即整体失败。
+TRUNK_BATCH_BYTES="${TRUNK_BATCH_BYTES:-131072}"
+if ! printf '%s\n' "${ALL_FILES}" | xargs -d '\n' -r -s "${TRUNK_BATCH_BYTES}" "${TRUNK_BIN}" check; then
 	echo ""
 	echo "❌ 代码质量检查失败!"
 	echo ""