Files
workflow-flash-with-uboot/README.md
T
nearology 9b5bff8002
flash-aminpa-V1.5.yml / Hardware flashing - Amin Pardaz Asia v1.5 (push) Successful in 7m25s
تغییر ایپی tftp سرور به متغیر
2026-11-10 12:30:21 +03:30

3.6 KiB

فلش و تست دستگاه Amin Pardaz Asia v1.5

workflow اصلی flash-aminpa-V1.5.yml با push به شاخهٔ main اجرا می‌شود. workflow تست نرم‌افزاری برای اجرا پس از موفقیت آن و همچنین اجرای دستی تعریف شده است.

متغیرهای Gitea برای شبکهٔ U-Boot و TFTP

این متغیرها را در تنظیمات مخزن، بخش Actions → Variables تعریف کنید. workflow تنظیم شبکه و workflow اصلی فلش از آن‌ها استفاده می‌کنند.

نام متغیر کاربرد پیش‌فرض
UBOOT_DEVICE_IP IP دستگاه در U-Boot؛ مقدار ipaddr 192.168.75.100
TFTP_SERVER_IP IP سرور TFTP؛ مقدار serverip و مقصد ping بررسی شبکه 192.168.75.247

هر دو مقدار باید IPv4 معتبر و بدون CIDR باشند. اگر متغیر تعریف نشود، مقدار پیش‌فرض استفاده می‌شود. مقدار تنظیم‌شده روی برد بازخوانی و بررسی می‌شود. UBOOT_DEVICE_IP مربوط به مرحلهٔ فلش است؛ TEST_DEVICE_IP مربوط به دستگاه پس از بوت سیستم‌عامل است و می‌تواند متفاوت باشد.

نمونهٔ اجرای مستقیم:

/usr/bin/python3 scripts/serial_command.py configure \
  --device-ip 192.168.75.100 \
  --tftp-server-ip 192.168.75.247

متغیرهای 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 واقعی دستگاه:

/usr/bin/python3 scripts/software_test.py \
  --interface eno1 \
  --host-ip 192.168.75.15 \
  --device-ip <DEVICE_IP>

برای محل فایل‌های firmware و نقشهٔ فلش، راهنمای firmware را ببینید.