This commit is contained in:
Brian 2025-02-08 13:20:01 +00:00 committed by GitHub
commit 64a2a00246
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 54 additions and 0 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

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