اصلاح ورک فلو های استقرار

This commit is contained in:
2026-11-10 12:59:46 +03:30
والد 9b5bff8002
کامیت 0528032639
14فایلهای تغییر یافته به همراه38 افزوده شده و 27 حذف شده
@@ -22,7 +22,7 @@ jobs:
CONFIRM_SQUASHFS_MTDBLOCK3: ${{ inputs.confirm_squashfs_mtdblock3 }}
run: |
if [ "$CONFIRM_SQUASHFS_MTDBLOCK3" = "true" ]; then
/usr/bin/python3 scripts/serial_command.py boot-config --confirm-squashfs-mtdblock3
/usr/bin/python3 deployment/serial/serial_command.py boot-config --confirm-squashfs-mtdblock3
else
/usr/bin/python3 scripts/serial_command.py boot-config
/usr/bin/python3 deployment/serial/serial_command.py boot-config
fi
+1 -1
مشاهده پرونده
@@ -12,4 +12,4 @@ jobs:
uses: actions/checkout@v4
- name: Detect flash, set bootcmd and verify
run: /usr/bin/python3 scripts/serial_command.py set-bootcmd
run: /usr/bin/python3 deployment/serial/serial_command.py set-bootcmd
@@ -13,4 +13,4 @@ jobs:
- name: Transfer DTB, write SPI flash and verify read-back
run: |
/usr/bin/python3 scripts/serial_command.py transfer-dtb
/usr/bin/python3 deployment/serial/serial_command.py transfer-dtb
@@ -38,41 +38,41 @@ jobs:
PY
- name: Check current U-Boot CLI
run: /usr/bin/python3 scripts/serial_command.py check
run: /usr/bin/python3 deployment/serial/serial_command.py check
- name: Configure and verify network
env:
UBOOT_DEVICE_IP: ${{ vars.UBOOT_DEVICE_IP || '192.168.75.100' }}
TFTP_SERVER_IP: ${{ vars.TFTP_SERVER_IP || '192.168.75.247' }}
run: |
/usr/bin/python3 scripts/serial_command.py configure --device-ip "$UBOOT_DEVICE_IP" --tftp-server-ip "$TFTP_SERVER_IP"
/usr/bin/python3 deployment/serial/serial_command.py configure --device-ip "$UBOOT_DEVICE_IP" --tftp-server-ip "$TFTP_SERVER_IP"
- name: Check all firmware sizes against detected flash layout
run: /usr/bin/python3 scripts/serial_command.py preflight
run: /usr/bin/python3 deployment/serial/serial_command.py preflight
- name: Erase detected SPI flash and verify sample
run: /usr/bin/python3 scripts/serial_command.py erase
run: /usr/bin/python3 deployment/serial/serial_command.py erase
- name: Transfer, write and verify U-Boot
run: /usr/bin/python3 scripts/serial_command.py transfer
run: /usr/bin/python3 deployment/serial/serial_command.py transfer
- name: Transfer, write and verify DTB
run: /usr/bin/python3 scripts/serial_command.py transfer-dtb
run: /usr/bin/python3 deployment/serial/serial_command.py transfer-dtb
- name: Transfer, write and verify Kernel
run: /usr/bin/python3 scripts/serial_command.py transfer-kernel
run: /usr/bin/python3 deployment/serial/serial_command.py transfer-kernel
- name: Transfer, write and verify RootFS
run: /usr/bin/python3 scripts/serial_command.py transfer-rootfs
run: /usr/bin/python3 deployment/serial/serial_command.py transfer-rootfs
- name: Inspect boot configuration
run: /usr/bin/python3 scripts/serial_command.py boot-config
run: /usr/bin/python3 deployment/serial/serial_command.py boot-config
- name: Configure and verify bootcmd for detected flash
run: /usr/bin/python3 scripts/serial_command.py set-bootcmd
run: /usr/bin/python3 deployment/serial/serial_command.py set-bootcmd
- name: Save U-Boot environment before reboot
run: /usr/bin/python3 scripts/serial_command.py saveenv
run: /usr/bin/python3 deployment/serial/serial_command.py saveenv
- name: Reboot hardware after successful flashing
run: /usr/bin/python3 scripts/serial_command.py reboot
run: /usr/bin/python3 deployment/serial/serial_command.py reboot
@@ -13,4 +13,4 @@ jobs:
- name: Erase entire flash and verify first 256 bytes
run: |
/usr/bin/python3 scripts/serial_command.py erase
/usr/bin/python3 deployment/serial/serial_command.py erase
@@ -13,4 +13,4 @@ jobs:
- name: Transfer Kernel, write SPI flash and verify read-back
run: |
/usr/bin/python3 scripts/serial_command.py transfer-kernel
/usr/bin/python3 deployment/serial/serial_command.py transfer-kernel
@@ -13,4 +13,4 @@ jobs:
- name: Detect flash, transfer RootFS and verify read-back
run: |
/usr/bin/python3 scripts/serial_command.py transfer-rootfs
/usr/bin/python3 deployment/serial/serial_command.py transfer-rootfs
+1 -1
مشاهده پرونده
@@ -13,4 +13,4 @@ jobs:
- name: Check current U-Boot CLI prompt
run: |
/usr/bin/python3 scripts/serial_command.py check
/usr/bin/python3 deployment/serial/serial_command.py check
@@ -27,4 +27,4 @@ jobs:
TEST_HOST_IP: ${{ vars.TEST_HOST_IP || '192.168.75.15' }}
TEST_DEVICE_IP: ${{ vars.TEST_DEVICE_IP }}
run: |
/usr/bin/python3 scripts/software_test.py --interface "$TEST_INTERFACE" --host-ip "$TEST_HOST_IP" --device-ip "$TEST_DEVICE_IP"
/usr/bin/python3 deployment/serial/software_test.py --interface "$TEST_INTERFACE" --host-ip "$TEST_HOST_IP" --device-ip "$TEST_DEVICE_IP"
@@ -16,4 +16,4 @@ jobs:
UBOOT_DEVICE_IP: ${{ vars.UBOOT_DEVICE_IP || '192.168.75.100' }}
TFTP_SERVER_IP: ${{ vars.TFTP_SERVER_IP || '192.168.75.247' }}
run: |
/usr/bin/python3 scripts/serial_command.py configure --device-ip "$UBOOT_DEVICE_IP" --tftp-server-ip "$TFTP_SERVER_IP"
/usr/bin/python3 deployment/serial/serial_command.py configure --device-ip "$UBOOT_DEVICE_IP" --tftp-server-ip "$TFTP_SERVER_IP"
@@ -13,4 +13,4 @@ jobs:
- name: Transfer firmware, write SPI flash and verify read-back
run: |
/usr/bin/python3 scripts/serial_command.py transfer
/usr/bin/python3 deployment/serial/serial_command.py transfer
+13 -2
مشاهده پرونده
@@ -21,7 +21,7 @@ workflow تنظیم شبکه و workflow اصلی فلش از آن‌ها است
نمونهٔ اجرای مستقیم:
```bash
/usr/bin/python3 scripts/serial_command.py configure \
/usr/bin/python3 deployment/serial/serial_command.py configure \
--device-ip 192.168.75.100 \
--tftp-server-ip 192.168.75.247
```
@@ -53,10 +53,21 @@ IP میزبان باید از قبل روی کارت شبکهٔ انتخاب‌
نمونهٔ اجرای دستی روی runner با جایگزین‌کردن IP واقعی دستگاه:
```bash
/usr/bin/python3 scripts/software_test.py \
/usr/bin/python3 deployment/serial/software_test.py \
--interface eno1 \
--host-ip 192.168.75.15 \
--device-ip <DEVICE_IP>
```
برای محل فایل‌های firmware و نقشهٔ فلش، [راهنمای firmware](firmware/README.md) را ببینید.
## ساختار استقرار
اسکریپت‌های اجرایی در `deployment/serial/` قرار دارند:
- `serial_command.py`: کنترل U-Boot، فلش و راه‌اندازی برد از طریق سریال.
- `software_test.py`: بررسی پاسخ ping دستگاه پس از بوت.
workflowهای اصلی امین‌پرداز و ورودی‌های workflowهای کمکی در
`.gitea/workflows/` باقی می‌مانند و اسکریپت‌ها را از مسیر جدید اجرا می‌کنند.
فایل‌های باینری همچنان در پوشهٔ `firmware/` ریشهٔ مخزن قرار می‌گیرند.
@@ -224,7 +224,7 @@ def main():
args = parser.parse_args()
if args.firmware is None:
filename = "rootfs.squashfs" if args.mode == "transfer-rootfs" else "zImage" if args.mode == "transfer-kernel" else ("sun8i-v3s-licheepi-zero-dock.dtb" if args.mode == "transfer-dtb" else "u-boot-sunxi-with-spl.bin")
args.firmware = Path(__file__).resolve().parent.parent / "firmware" / filename
args.firmware = Path(__file__).resolve().parents[2] / "firmware" / filename
if args.mode in ("transfer", "transfer-dtb", "transfer-kernel", "transfer-rootfs") and not args.firmware.is_file():
raise RuntimeError("Firmware file not found: " + str(args.firmware))
# Shared by both workflows: fail rather than interleave serial commands.
@@ -250,7 +250,7 @@ def main():
files = {"uboot": "u-boot-sunxi-with-spl.bin", "dtb": "sun8i-v3s-licheepi-zero-dock.dtb",
"kernel": "zImage", "rootfs": "rootfs.squashfs"}
for part, filename in files.items():
path = Path(__file__).resolve().parent.parent / "firmware" / filename
path = Path(__file__).resolve().parents[2] / "firmware" / filename
minimum = 64 if part in ("kernel", "rootfs") else 32
limit = LAYOUTS[capacity][part][1]
if not path.is_file() or not minimum <= path.stat().st_size <= limit: