diff --git a/check-history.sh b/check-history.sh index 77990b7..03768ed 100755 --- a/check-history.sh +++ b/check-history.sh @@ -115,9 +115,9 @@ build_frontend() { [ "$VERBOSE" -eq 1 ] && echo "[BUILD_DEBUG] Running pnpm install..." || true if [ "$VERBOSE" -eq 1 ]; then - pnpm install --frozen-lockfile /dev/null 2>&1 + pnpm install --frozen-lockfile --prefer-offline /dev/null 2>&1 fi || { echo "❌ pnpm install failed" return 1 @@ -194,13 +194,19 @@ check_commit() { [ "$VERBOSE" -eq 1 ] && echo "[CHECK_DEBUG] No rfc-edge-frontend directory found, skipping frontend build" || true fi - echo "→ Running cargo check…" - [ "$VERBOSE" -eq 1 ] && echo "[CHECK_DEBUG] Starting cargo check" || true - if ! cargo check --quiet; then - echo "❌ Cargo check failed" - exit 1 + # Check if Rust files changed in this commit + if git diff --name-only "${commit}^..${commit}" 2>/dev/null | grep -qE '\.(rs|toml)$|Cargo\.lock'; then + [ "$VERBOSE" -eq 1 ] && echo "[CHECK_DEBUG] Rust files changed, running cargo check" || true + echo "→ Running cargo check…" + if ! cargo check --quiet; then + echo "❌ Cargo check failed" + exit 1 + fi + [ "$VERBOSE" -eq 1 ] && echo "[CHECK_DEBUG] Cargo check completed successfully" || true + else + [ "$VERBOSE" -eq 1 ] && echo "[CHECK_DEBUG] No Rust files changed, skipping cargo check" || true + echo "→ Skipping cargo check (no Rust changes)" fi - [ "$VERBOSE" -eq 1 ] && echo "[CHECK_DEBUG] Cargo check completed successfully" || true echo "✓ OK" ) >"$log" 2>&1