ci: add bash script to check if llama-impl.h was included in example folder erronously

This commit is contained in:
brian khuu 2025-02-03 22:01:47 +11:00
parent d92cb67e37
commit 4033365e00
3 changed files with 59 additions and 1 deletions

21
.github/workflows/precompile-checks.yml vendored Normal file
View file

@ -0,0 +1,21 @@
name: Precompile Checks
on:
push:
branches:
- master
paths: ['**/*.c', '**/*.cpp']
pull_request:
types: [opened, synchronize, reopened]
paths: ['**/*.c', '**/*.cpp']
jobs:
precompile-check:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Run Forbidden Includes Check
run: bash scripts/precompile-checks.sh

View file

@ -211,7 +211,7 @@ ifdef GGML_VULKAN
BUILD_TARGETS += vulkan-shaders-gen
endif
default: $(BUILD_TARGETS) $(LEGACY_TARGETS_BUILD)
default: precompile_checks $(BUILD_TARGETS) $(LEGACY_TARGETS_BUILD)
test: $(TEST_TARGETS)
@failures=0; \
@ -248,6 +248,10 @@ test: $(TEST_TARGETS)
all: $(BUILD_TARGETS) $(TEST_TARGETS) $(LEGACY_TARGETS_BUILD)
# Run the forbidden includes check before every build
precompile_checks:
@bash ./scripts/precompile-checks.sh
ifdef RISCV_CROSS_COMPILE
CC := riscv64-unknown-linux-gnu-gcc
CXX := riscv64-unknown-linux-gnu-g++

33
scripts/precompile-checks.sh Executable file
View file

@ -0,0 +1,33 @@
#!/bin/bash
# This runs some pre compilation sanity checks that certain project rules and guidelines are kept
# This will not contain any signifiant logic, but mostly just obvious and easily greppable checks
ERROR_FOUND=0
## START OF INCLUDES EXCLUDED FROM EXAMPLES FOLDER ##
SRC_DIR="./examples"
FORBIDDEN_HEADERS=("llama-impl.h")
echo "🔍 Scanning for forbidden includes in $SRC_DIR..."
for HEADER in "${FORBIDDEN_HEADERS[@]}"; do
MATCHES=$(grep -rn --include=\*.{c,cpp} "#include \"$HEADER\"" "$SRC_DIR" 2>/dev/null)
if [[ -n "$MATCHES" ]]; then
echo "❌ Forbidden include detected: $HEADER"
echo "$MATCHES" | while IFS=: read -r FILE LINE _; do
echo "::error file=$FILE,line=$LINE::Forbidden include: $HEADER in $FILE at line $LINE"
done
ERROR_FOUND=1
fi
done
## END OF INCLUDES EXCLUDED FROM EXAMPLES FOLDER ##
if [[ "$ERROR_FOUND" -eq 1 ]]; then
echo "❌ Forbidden includes found. Please remove!"
exit 1
else
echo "✅ No forbidden includes found."
fi