لماذا تحليل جودة الكود؟
تحليل الجودة يضمن الاتساق، ويقلل من الديون التقنية، ويمنع الأخطاء الشائعة قبل وصولها إلى الإنتاج.
ESLint في CI/CD
- name: Lint Check
run: |
npm run lint
# أو
npx eslint src/ --max-warnings 0
SonarQube مع CI/CD
- name: SonarQube Scan
uses: sonarsource/sonarqube-scan-action@master
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }}
مقاييس الجودة في SonarQube
| المقياس | الوصف |
|---|---|
| Bugs | أخطاء قد تؤدي إلى عطل |
| Vulnerabilities | ثغرات أمنية |
| Code Smells | مشاكل في الصيانة |
| Coverage | تغطية الاختبارات |
| Duplications | تكرار الكود |
Quality Gate
<!-- sonar-project.properties -->
sonar.projectKey=my-project
sonar.qualitygate.wait=true
sonar.qualitygate.timeout=300
⚠️ لا تتجاهل تحذيرات SonarQube. اجعل Quality Gate إلزامياً لتجاوز مرحلة CI.
Pre-commit Hooks
{
"husky": {
"hooks": {
"pre-commit": "npm run lint"
}
}
}
🎯 التالي: سجلات الحاويات (Docker Hub / GHCR)