From 1377abe24847fe87fccba1bb2b6c3354e9b85430 Mon Sep 17 00:00:00 2001 From: user Date: Thu, 5 Feb 2026 22:09:47 +0100 Subject: [PATCH] ci: Run deploy on host instead of container for network access --- .gitea/workflows/lint.yml | 46 ++++++++++----------------------------- 1 file changed, 12 insertions(+), 34 deletions(-) diff --git a/.gitea/workflows/lint.yml b/.gitea/workflows/lint.yml index 55c00c0..f4abaa8 100644 --- a/.gitea/workflows/lint.yml +++ b/.gitea/workflows/lint.yml @@ -68,35 +68,26 @@ jobs: runs-on: anvil needs: build if: github.event_name == 'workflow_dispatch' && github.event.inputs.deploy == 'true' || startsWith(github.ref, 'refs/tags/v') - container: - image: docker.io/espressif/idf:v5.3 - options: --network host - volumes: - - /var/cache/ccache:/ccache - env: - CCACHE_DIR: /ccache - IDF_CCACHE_ENABLE: 1 + # Run directly on host (no container) to access local network steps: - - name: Install tools - run: | - apt-get update && apt-get install -y --no-install-recommends netcat-openbsd curl jq ccache - - name: Checkout run: | git clone --depth=1 --branch=${{ github.ref_name }} \ - https://oauth2:${{ github.token }}@git.mymx.me/${{ github.repository }}.git . + https://oauth2:${{ github.token }}@git.mymx.me/${{ github.repository }}.git workspace + cd workspace - name: Build firmware run: | - . /opt/esp/idf/export.sh + cd workspace + . $HOME/esp/esp-idf/export.sh cd get-started/csi_recv_router idf.py build - ccache --show-stats | head -5 - name: Create release and upload firmware env: GITEA_TOKEN: ${{ github.token }} run: | + cd workspace TAG="${{ github.ref_name }}" REPO="${{ github.repository }}" API_URL="https://git.mymx.me/api/v1" @@ -129,9 +120,9 @@ jobs: - name: Deploy via OTA run: | + cd workspace SENSORS="muddy-storm:192.168.129.29 amber-maple:192.168.129.30 hollow-acorn:192.168.129.31" OTA_PORT=8899 - MAX_PARALLEL=3 # Get runner IP (first non-loopback interface) RUNNER_IP=$(hostname -I | awk '{print $1}') @@ -149,30 +140,17 @@ jobs: # Verify server is running curl -sI "http://localhost:${OTA_PORT}/csi_recv_router.bin" | head -1 - # Deploy function - deploy_sensor() { - NAME="$1" - IP="$2" - URL="$3" - echo "=== Starting OTA on $NAME ($IP) ===" - RESPONSE=$(echo "OTA $URL" | nc -u -w 2 "$IP" 5501 2>/dev/null || echo "no response") - echo "$NAME: $RESPONSE" - } - - # Deploy to all sensors in parallel (max $MAX_PARALLEL) + # Deploy to all sensors in parallel echo "=== Deploying to all sensors in parallel ===" - PIDS="" for entry in $SENSORS; do NAME="${entry%%:*}" IP="${entry##*:}" - deploy_sensor "$NAME" "$IP" "$FIRMWARE_URL" & - PIDS="$PIDS $!" + echo "=== Starting OTA on $NAME ($IP) ===" + echo "OTA $FIRMWARE_URL" | nc -u -w 2 "$IP" 5501 & done - # Wait for all OTA commands to be sent - for PID in $PIDS; do - wait $PID 2>/dev/null || true - done + # Wait for OTA commands to be sent + wait echo "=== OTA commands sent, waiting for devices to update (60s) ===" sleep 60