|
@@ -95,12 +95,24 @@ echo "🚀 正在运行代码质量检查..."
|
|
|
echo "========================================"
|
|
echo "========================================"
|
|
|
echo "模式: ${MODE}"
|
|
echo "模式: ${MODE}"
|
|
|
|
|
|
|
|
-# 切换到工作目录
|
|
|
|
|
|
|
+# 切换到工作目录(文件收集阶段;实际运行 trunk 前会再切到目标仓库根)
|
|
|
cd /workspace || exit
|
|
cd /workspace || exit
|
|
|
|
|
|
|
|
-# 检查trunk工具是否可用
|
|
|
|
|
-if ! command -v ./trunk &>/dev/null; then
|
|
|
|
|
- echo "❌ trunk工具未找到,请确保已正确安装"
|
|
|
|
|
|
|
+# 解析 trunk 二进制(优先级:TRUNK_BIN 环境变量 > /workspace/trunk > PATH 中的 trunk)
|
|
|
|
|
+resolve_trunk() {
|
|
|
|
|
+ if [ -n "${TRUNK_BIN:-}" ] && [ -x "$TRUNK_BIN" ]; then
|
|
|
|
|
+ printf '%s\n' "$TRUNK_BIN"
|
|
|
|
|
+ elif [ -x /workspace/trunk ]; then
|
|
|
|
|
+ printf '%s\n' /workspace/trunk
|
|
|
|
|
+ elif command -v trunk >/dev/null 2>&1; then
|
|
|
|
|
+ command -v trunk
|
|
|
|
|
+ else
|
|
|
|
|
+ printf '\n'
|
|
|
|
|
+ fi
|
|
|
|
|
+}
|
|
|
|
|
+TRUNK_BIN="$(resolve_trunk)"
|
|
|
|
|
+if [ -z "$TRUNK_BIN" ]; then
|
|
|
|
|
+ echo "❌ trunk工具未找到,请设置 TRUNK_BIN 或安装 trunk"
|
|
|
exit 1
|
|
exit 1
|
|
|
fi
|
|
fi
|
|
|
|
|
|
|
@@ -172,10 +184,19 @@ echo "📊 共发现 ${FILE_COUNT} 个需要检查的文件:"
|
|
|
echo "${ALL_FILES}"
|
|
echo "${ALL_FILES}"
|
|
|
echo ""
|
|
echo ""
|
|
|
|
|
|
|
|
-# 运行trunk check检查代码质量
|
|
|
|
|
|
|
+# 确定目标所在的 git 仓库根并切换(子模块是独立 git 仓库,需在各自仓库根运行 trunk)
|
|
|
|
|
+if [ -n "$ALL_FILES" ]; then
|
|
|
|
|
+ FIRST_FILE="$(printf '%s\n' "$ALL_FILES" | head -n 1)"
|
|
|
|
|
+ REPO_ROOT="$(git -C "$(dirname "$FIRST_FILE")" rev-parse --show-toplevel 2>/dev/null || echo /workspace)"
|
|
|
|
|
+else
|
|
|
|
|
+ REPO_ROOT="/workspace"
|
|
|
|
|
+fi
|
|
|
|
|
+cd "$REPO_ROOT" || exit
|
|
|
|
|
+
|
|
|
|
|
+# 运行trunk check检查代码质量(已禁用安全扫描类工具,仅纯代码质量/格式检查)
|
|
|
echo ""
|
|
echo ""
|
|
|
echo "🔍 正在运行代码质量检查..."
|
|
echo "🔍 正在运行代码质量检查..."
|
|
|
-if ! ./trunk check ${ALL_FILES}; then
|
|
|
|
|
|
|
+if ! "$TRUNK_BIN" check ${ALL_FILES}; then
|
|
|
echo ""
|
|
echo ""
|
|
|
echo "❌ 代码质量检查失败!"
|
|
echo "❌ 代码质量检查失败!"
|
|
|
echo ""
|
|
echo ""
|
|
@@ -184,16 +205,6 @@ if ! ./trunk check ${ALL_FILES}; then
|
|
|
exit 1
|
|
exit 1
|
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
-# 检查安全漏洞
|
|
|
|
|
-echo ""
|
|
|
|
|
-echo "🔒 正在检查安全漏洞..."
|
|
|
|
|
-if ! ./trunk check --filter=trivy ${ALL_FILES}; then
|
|
|
|
|
- echo ""
|
|
|
|
|
- echo "⚠️ 发现安全相关问题,建议检查后再推送"
|
|
|
|
|
- echo ""
|
|
|
|
|
- exit 1
|
|
|
|
|
-fi
|
|
|
|
|
-
|
|
|
|
|
echo ""
|
|
echo ""
|
|
|
echo "✅ 代码质量检查通过!可以安全提交。"
|
|
echo "✅ 代码质量检查通过!可以安全提交。"
|
|
|
echo "========================================"
|
|
echo "========================================"
|