quality.yml
1 name: Code Quality 2 on: [push, pull_request] 3 4 jobs: 5 lint: 6 runs-on: ubuntu-latest 7 steps: 8 - uses: actions/checkout@v6.0.1 9 10 - name: Check file permissions 11 run: | 12 find . -type f -perm /111 -name "*.sh" | head -10 || true 13 14 - name: Check for secrets 15 uses: trufflesecurity/trufflehog@main 16 with: 17 path: ./ 18 base: ${{ github.event.pull_request.base.sha || github.event.before }} 19 head: ${{ github.sha }} 20 continue-on-error: true 21 22 - name: Check TODO/FIXME 23 run: | 24 echo "=== TODOs ===" 25 grep -rn "TODO\|FIXME\|HACK\|XXX" --include="*.rs" --include="*.res" --include="*.py" --include="*.ex" . | head -20 || echo "None found" 26 27 - name: Check for large files 28 run: | 29 find . -type f -size +1M -not -path "./.git/*" | head -10 || echo "No large files" 30 31 - name: EditorConfig check 32 uses: editorconfig-checker/action-editorconfig-checker@main 33 continue-on-error: true 34 35 docs: 36 runs-on: ubuntu-latest 37 steps: 38 - uses: actions/checkout@v6.0.1 39 - name: Check documentation 40 run: | 41 MISSING="" 42 [ ! -f "README.md" ] && [ ! -f "README.adoc" ] && MISSING="$MISSING README" 43 [ ! -f "LICENSE" ] && [ ! -f "LICENSE.txt" ] && [ ! -f "LICENSE.md" ] && MISSING="$MISSING LICENSE" 44 [ ! -f "CONTRIBUTING.md" ] && [ ! -f "CONTRIBUTING.adoc" ] && MISSING="$MISSING CONTRIBUTING" 45 46 if [ -n "$MISSING" ]; then 47 echo "::warning::Missing docs:$MISSING" 48 else 49 echo "✅ Core documentation present" 50 fi