From 1374f22aa214e3daefc65f6903fefa4c0be0c818 Mon Sep 17 00:00:00 2001 From: Hermes Date: Sat, 29 Aug 2026 16:19:05 -0500 Subject: [PATCH] ci: add OTA build workflow --- .gitea/workflows/ota-build.yml | 46 ++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 .gitea/workflows/ota-build.yml diff --git a/.gitea/workflows/ota-build.yml b/.gitea/workflows/ota-build.yml new file mode 100644 index 0000000..b4643cf --- /dev/null +++ b/.gitea/workflows/ota-build.yml @@ -0,0 +1,46 @@ +name: OTA build + +on: + push: + branches: + - '**' + workflow_dispatch: + +jobs: + build-ota: + runs-on: ubuntu-latest + timeout-minutes: 45 + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Install PlatformIO + run: | + python -m pip install --upgrade pip + pip install platformio + + - name: Build OTA firmware binaries + run: pio run + + - name: Collect OTA artifacts + run: | + mkdir -p dist/ota + find .pio/build -type f -name 'firmware.bin' -exec cp {} dist/ota/ \; + count=$(find dist/ota -type f -name '*.bin' | wc -l) + if [ "$count" -eq 0 ]; then + echo 'No firmware.bin artifacts were produced.' >&2 + exit 1 + fi + find dist/ota -maxdepth 1 -type f | sort + + - name: Upload OTA artifacts + uses: actions/upload-artifact@v3 + with: + name: ota-binaries + path: dist/ota/*.bin + if-no-files-found: error