import-lint.yml 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. name: Import Layer Check
  2. on: [push, pull_request]
  3. jobs:
  4. layer-check:
  5. runs-on: ubuntu-latest
  6. steps:
  7. - uses: actions/checkout@v4
  8. - name: Check cross-layer import violations
  9. run: |
  10. violations=0
  11. echo "规则1: views/ 禁止直接导入 foundation/database/"
  12. result=$(grep -rn "from foundation\.database" views/ --include="*.py" || true)
  13. if [ -n "$result" ]; then
  14. echo "违规: views/ 直接导入了 foundation/database/"
  15. echo "$result"
  16. violations=$((violations + 1))
  17. fi
  18. echo "规则2: reviewers/doc_worker 禁止直接导入 foundation/database/"
  19. result=$(grep -rn "from foundation\.database" \
  20. core/construction_review/component/reviewers/ \
  21. core/construction_review/component/doc_worker/ \
  22. --include="*.py" || true)
  23. if [ -n "$result" ]; then
  24. echo "违规: 业务组件直接导入了 foundation/database/"
  25. echo "$result"
  26. violations=$((violations + 1))
  27. fi
  28. if [ $violations -gt 0 ]; then
  29. echo "共发现 $violations 类跨层导入违规"
  30. exit 1
  31. fi
  32. echo "Import layer check passed."