ci: add bash script to check if llama-impl.h was included in example folder erronously
This commit is contained in:
parent
d92cb67e37
commit
4033365e00
3 changed files with 59 additions and 1 deletions
21
.github/workflows/precompile-checks.yml
vendored
Normal file
21
.github/workflows/precompile-checks.yml
vendored
Normal 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
|
6
Makefile
6
Makefile
|
@ -211,7 +211,7 @@ ifdef GGML_VULKAN
|
||||||
BUILD_TARGETS += vulkan-shaders-gen
|
BUILD_TARGETS += vulkan-shaders-gen
|
||||||
endif
|
endif
|
||||||
|
|
||||||
default: $(BUILD_TARGETS) $(LEGACY_TARGETS_BUILD)
|
default: precompile_checks $(BUILD_TARGETS) $(LEGACY_TARGETS_BUILD)
|
||||||
|
|
||||||
test: $(TEST_TARGETS)
|
test: $(TEST_TARGETS)
|
||||||
@failures=0; \
|
@failures=0; \
|
||||||
|
@ -248,6 +248,10 @@ test: $(TEST_TARGETS)
|
||||||
|
|
||||||
all: $(BUILD_TARGETS) $(TEST_TARGETS) $(LEGACY_TARGETS_BUILD)
|
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
|
ifdef RISCV_CROSS_COMPILE
|
||||||
CC := riscv64-unknown-linux-gnu-gcc
|
CC := riscv64-unknown-linux-gnu-gcc
|
||||||
CXX := riscv64-unknown-linux-gnu-g++
|
CXX := riscv64-unknown-linux-gnu-g++
|
||||||
|
|
33
scripts/precompile-checks.sh
Executable file
33
scripts/precompile-checks.sh
Executable 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
|
Loading…
Add table
Add a link
Reference in a new issue