منصوبے کے بارے میں

# Build-Eye CI نگرانی نظام **بلڈ ایگل** - vLLM-Ascend CI بلڈ خودکار نگرانی اور بنیادی سبب تجزیہ نظام ## نظام کا جائزہ Build-Eye ایک CI بلڈ نگرانی نظام ہے جو خاص طور پر vLLM-Ascend پروجیکٹ کے لیے ڈیزائن کیا گیا ہے، جو درج ذیل کام کر سکتا ہے: - vllm-project/vllm-ascend ریپوزٹری کے CI بلڈز کی **خودکار نگرانی** - بلڈ ناکامی کے بنیادی اسباب کی **ذہین درجہ بندی** (کوڈ مسئلہ/انفراسٹرکچر مسئلہ/مداخلت مسئلہ) - کم لاگت قابل عمل مرمت کے حل کی **تجاویز کی تیاری** - معیاری رپورٹس کا خودکار طور پر build-eye ریپوزٹری میں **محفوظ کرنا** ## نگرانی کے اہداف - بنیادی نگرانی ریپو: https://github.com/vllm-project/vllm-ascend - آرکائیو ہوسٹنگ ریپو: https://github.com/winson-00178005/build-eye.git ## ناکامی کے بنیادی اسباب کی درجہ بندی ### 1. PR کوڈ مسئلہ - ٹیسٹ ایسرشن ناکامی - کمپائلیشن خرابی (CMake، clang) - Python امپورٹ خرابی - vLLM API عدم مطابقت - Ascend kernel کمپائلیشن مسئلہ ### 2. انفراسٹرکچر مسئلہ - K8s cache-service ناکامی (cache-service.nginx-pypi-cache) - Runner دستیاب نہ ہونا - NPU ہارڈویئر مسئلہ (910B/910C/310P) - CANN toolkit مسئلہ - HCCL ملٹی کارڈ کمیونیکیشن ناکامی - Docker امیج پل ناکامی - Csrc کیش ناکامی - بلڈ ٹائم آؤٹ ### 3. ملٹی PR ہم وقتی مداخلت - مختصر وقت میں متعدد PRs کا انضمام - vLLM ورژن میٹرکس فرق - Runner وسائل کا مقابلہ - CANN امیج اپ ڈیٹ کا اثر ## فوری آغاز ### 1. GitHub Token کی ترتیب ضروری کیز کی ترتیب کے لیے `docs/token-setup.md` دیکھیں۔ ### 2. انحصاریات کی تنصیب ```bash pip install -r requirements.txt ``` ### 3. دستی طور پر نگرانی کا آغاز ```bash python scripts/monitor/fetch_runs.py --output data/workflow_runs.json python scripts/monitor/collect_metadata.py --input data/workflow_runs.json --output data/build_metadata.json python scripts/classify/classifier.py --input data/build_metadata.json --output data/classifications.json python scripts/recommend/recommender.py --input data/classifications.json --output data/recommendations.json python scripts/report/generator.py --input data/recommendations.json --output reports/ ``` ### 4. رپورٹ کی آرکائیو ```bash python scripts/archive/archiver.py --input reports/ --repo https://github.com/winson-00178005/build-eye.git ``` ## GitHub Actions ورک فلو نظام دو ٹرگر موڈز کی حمایت کرتا ہے: ### شیڈولڈ پولنگ ہر 6 گھنٹے بعد حالیہ بلڈ ناکامیوں کی خودکار جانچ۔ ورک فلو فائل: `.github/workflows/monitor.yml` ### دستی ٹرگر GitHub Actions کے `workflow_dispatch` کے ذریعے دستی ٹرگر۔ اختیاری پیرامیٹرز: - `lookback_hours`: گزشتہ کتنے گھنٹے چیک کریں (ڈیفالٹ 24) - `dry_run`: ٹرائل رن موڈ (آرکائیو نہیں) - `target_repo`: ہدف ریپوزٹری ## پروجیکٹ کی ساخت ``` build-eye/ ├── .github/workflows/ │ └── monitor.yml # GitHub Actions ورک فلو ├── scripts/ │ ├── monitor/ # CI نگرانی ماڈیول │ │ ├── github_client.py # GitHub API کلائنٹ │ │ ├── fetch_runs.py # workflow runs حاصل کریں │ │ ├── collect_metadata.py # میٹا ڈیٹا جمع کریں │ │ └── config_loader.py # کنفیگ لوڈنگ │ ├── classify/ # ناکامی درجہ بندی ماڈیول │ │ ├── classifier.py # درجہ بندی انجن │ │ ├── code_detector.py # کوڈ مسئلہ detection │ │ ├── infra_detector.py # انفراسٹرکچر detection │ │ └── interference_detector.py # مداخلت detection │ ├── recommend/ # مرمت تجاویز ماڈیول │ │ ├── recommender.py # تجویز جنریٹر │ │ └── templates.py # تجویز ٹیمپلیٹس │ ├── report/ # رپورٹ جنریشن ماڈیول │ │ ├── generator.py # رپورٹ جنریٹر │ │ ├── formatter.py # فارمیٹنگ ٹولز │ │ └── summary.py # خلاصہ جنریشن │ └── archive/ # رپورٹ آرکائیو ماڈیول │ ├── archiver.py # آرکائیور │ └── git_client.py # Git کلائنٹ ├── config/ │ └── config.yaml # نظام کنفیگ ├── templates/ │ └ example_reports.py # رپورٹ مثالیں ├── tests/ # ٹیسٹ ڈائریکٹری ├── docs/ │ └ token-setup.md # Token کنفیگ گائیڈ ├── reports/ # رپورٹ آؤٹ پٹ ڈائریکٹری └ requirements.txt # Python انحصاریات └ requirements-dev.txt # ڈویلپمنٹ انحصاریات └ README.md # یہ دستاویز ``` ## کنفیگ آپشنز ### config/config.yaml ```yaml target_repository: owner: vllm-project repo: vllm-ascend url: https://github.com/vllm-project/vllm-ascend branch: main monitored_workflows: - pr_test_full.yaml - pr_test_light.yaml archive_repository: owner: winson-00178005 repo: build-eye url: https://github.com/winson-00178005/build-eye.git monitoring: polling_interval_hours: 6 lookback_hours: 24 ``` ### ماحول متغیرات - `GITHUB_TOKEN`: GitHub API رسائی token - `ARCHIVE_TOKEN`: آرکائیو ریپوزٹری رائٹ token - `TARGET_REPO_OWNER`: ہدف ریپوزٹری owner - `TARGET_REPO_NAME`: ہدف ریپوزٹری نام ## رپورٹ فارمیٹ ہر رپورٹ میں شامل ہے: - YAML frontmatter (میٹا ڈیٹا) - خلاصہ (1-2 جملے) - بنیادی سبب تجزیہ (درجہ بندی، اعتماد، استدلال) - ثبوت (میچنگ پیٹرن، لنکس، لاگ اقتباسات) - مرمت تجاویز (ترجیحی تجویز، تفصیلی مراحل) - متعلقہ PR (صرف مداخلت درجہ بندی) رپورٹ آرکائیو پاتھ: `reports/YYYY/MM/DD/<درجہ بندی>-pr-<نمبر>.md` ## ٹیسٹ چلانا ```bash pip install -r requirements-dev.txt pytest tests/ ``` ## nightly پائپ لائن کی توسیع نظام پہلے سے nightly پائپ لائن نگرانی کی حمایت کے لیے ڈیزائن کیا گیا ہے، صرف کنفیگ میں شامل کریں: ```yaml target_repository: monitored_workflows: - schedule_nightly_test_a2.yaml - schedule_nightly_test_a3.yaml ``` ## دیکھ بھال اور توسیع ### نئی درجہ بندی قواعد شامل کرنا `scripts/classify/` میں نیا detector شامل کریں: ```python def detect_new_pattern(log_excerpt: str) -> dict: patterns = [...] # detection منطق نافذ کریں ``` پھر `classifier.py` میں کال کریں۔ ### نئے تجویز ٹیمپلیٹس شامل کرنا `scripts/recommend/templates.py` میں نیا ٹیمپلیٹ شامل کریں۔ ## لائسنس Apache License 2.0 - تفصیلات کے لیے LICENSE فائل دیکھیں ## رابطہ مسئلہ رپورٹ: https://github.com/winson-00178005/build-eye/issues