1 Commits

Author SHA1 Message Date
user
6dbab23329 ci: Serve firmware from runner for OTA deployment
Some checks failed
Lint & Build / C/C++ Static Analysis (push) Failing after 37s
Lint & Build / Security Flaw Analysis (push) Successful in 21s
Lint & Build / Secret Scanning (push) Successful in 5s
Lint & Build / Shell Script Analysis (push) Successful in 6s
Lint & Build / Build Firmware (push) Successful in 2m12s
Lint & Build / Deploy to ESP Fleet (push) Successful in 4m19s
Instead of having ESP devices download from Gitea (TLS cert issues),
the runner now serves firmware via local HTTP server and triggers
OTA with the local URL.
2026-02-05 21:48:53 +01:00

View File

@@ -106,30 +106,39 @@ jobs:
-F "attachment=@get-started/csi_recv_router/build/csi_recv_router.bin" \
"$API_URL/repos/$REPO/releases/$RELEASE_ID/assets?name=csi_recv_router.bin"
# Store release URL for OTA
FIRMWARE_URL="https://git.mymx.me/$REPO/releases/download/$TAG/csi_recv_router.bin"
echo "Firmware URL: $FIRMWARE_URL"
echo "$FIRMWARE_URL" > /tmp/firmware_url.txt
- name: Deploy via OTA
run: |
FIRMWARE_URL=$(cat /tmp/firmware_url.txt)
echo "Using firmware URL: $FIRMWARE_URL"
SENSORS="muddy-storm:192.168.129.29 amber-maple:192.168.129.30 hollow-acorn:192.168.129.31"
FIRMWARE_PATH="get-started/csi_recv_router/build/csi_recv_router.bin"
OTA_PORT=8899
# Deploy to muddy-storm
echo "=== Deploying to muddy-storm (192.168.129.29) ==="
echo "OTA $FIRMWARE_URL" | nc -u -w 2 192.168.129.29 5501 || true
sleep 30
# Get runner IP (first non-loopback interface)
RUNNER_IP=$(hostname -I | awk '{print $1}')
echo "Runner IP: $RUNNER_IP"
# Deploy to amber-maple
echo "=== Deploying to amber-maple (192.168.129.30) ==="
echo "OTA $FIRMWARE_URL" | nc -u -w 2 192.168.129.30 5501 || true
sleep 30
# Start HTTP server to serve firmware
cd get-started/csi_recv_router/build
python3 -m http.server $OTA_PORT &
HTTP_PID=$!
sleep 2
# Deploy to hollow-acorn
echo "=== Deploying to hollow-acorn (192.168.129.31) ==="
echo "OTA $FIRMWARE_URL" | nc -u -w 2 192.168.129.31 5501 || true
sleep 30
FIRMWARE_URL="http://${RUNNER_IP}:${OTA_PORT}/csi_recv_router.bin"
echo "Firmware URL: $FIRMWARE_URL"
# Verify server is running
curl -sI "http://localhost:${OTA_PORT}/csi_recv_router.bin" | head -1
# Deploy to each sensor
for entry in $SENSORS; do
NAME="${entry%%:*}"
IP="${entry##*:}"
echo "=== Deploying to $NAME ($IP) ==="
echo "OTA $FIRMWARE_URL" | nc -u -w 2 "$IP" 5501 || true
sleep 45
done
# Stop HTTP server
kill $HTTP_PID 2>/dev/null || true
echo "=== Deployment complete ==="