منصوبے کے بارے میں
# 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
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.