# فلش و تست دستگاه Amin Pardaz Asia v1.5 workflow اصلی `flash-aminpa-V1.5.yml` با push به شاخهٔ `main` اجرا می‌شود. workflow تست نرم‌افزاری برای اجرا پس از موفقیت آن و همچنین اجرای دستی تعریف شده است. ## متغیرهای Gitea برای تست نرم‌افزاری متغیرها را در تنظیمات مخزن Gitea، بخش **Actions → Variables** تعریف کنید. نام متغیرها باید دقیقاً مطابق جدول باشد. | نام متغیر | کاربرد | پیش‌فرض | الزامی | | --- | --- | --- | --- | | `TEST_INTERFACE` | نام کارت شبکهٔ میزبان runner برای تست | `eno1` | خیر | | `TEST_HOST_IP` | آدرس IPv4 میزبان runner روی کارت شبکهٔ تست | `192.168.75.15` | خیر | | `TEST_DEVICE_IP` | آدرس IPv4 دستگاه فلش‌شده که باید به ping پاسخ دهد | ندارد | بله | `TEST_HOST_IP` آدرس میزبان است، نه دستگاه هدف. مقدار `TEST_DEVICE_IP` باید با آن متفاوت باشد و با IP دستگاه پس از بوت سیستم‌عامل مطابقت داشته باشد؛ این مقدار لزوماً همان `ipaddr` موقت در U-Boot نیست. IP میزبان باید از قبل روی کارت شبکهٔ انتخاب‌شده تنظیم شده باشد و مسیر رسیدن به دستگاه از همان کارت شبکه عبور کند. اسکریپت تنظیمات شبکهٔ میزبان را تغییر نمی‌دهد. مقادیر IP به‌صورت آدرس IPv4 وارد می‌شوند، نه رنج یا CIDR. اسکریپت با پایتون سیستم و ابزارهای سیستم `ip` و `ping` اجرا می‌شود. پس از بررسی تنظیمات میزبان، حداکثر ۱۸۰ ثانیه منتظر پاسخ ping دستگاه می‌ماند؛ اولین پاسخ موفق نتیجهٔ `PASS` دارد. نبود پاسخ تا پایان مهلت یا خطای تنظیمات باعث `FAIL` و شکست workflow می‌شود. نمونهٔ اجرای دستی روی runner با جایگزین‌کردن IP واقعی دستگاه: ```bash /usr/bin/python3 scripts/software_test.py \ --interface eno1 \ --host-ip 192.168.75.15 \ --device-ip ``` برای محل فایل‌های firmware و نقشهٔ فلش، [راهنمای firmware](firmware/README.md) را ببینید.