name: Import Layer Check on: [push, pull_request] jobs: layer-check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Check cross-layer import violations run: | violations=0 echo "规则1: views/ 禁止直接导入 foundation/database/" result=$(grep -rn "from foundation\.database" views/ --include="*.py" || true) if [ -n "$result" ]; then echo "违规: views/ 直接导入了 foundation/database/" echo "$result" violations=$((violations + 1)) fi echo "规则2: reviewers/doc_worker 禁止直接导入 foundation/database/" result=$(grep -rn "from foundation\.database" \ core/construction_review/component/reviewers/ \ core/construction_review/component/doc_worker/ \ --include="*.py" || true) if [ -n "$result" ]; then echo "违规: 业务组件直接导入了 foundation/database/" echo "$result" violations=$((violations + 1)) fi if [ $violations -gt 0 ]; then echo "共发现 $violations 类跨层导入违规" exit 1 fi echo "Import layer check passed."