Skip to content

Log DPS5020 retry attempts at WARN level for diagnostics #1

Log DPS5020 retry attempts at WARN level for diagnostics

Log DPS5020 retry attempts at WARN level for diagnostics #1

Workflow file for this run

name: Release (ESP-IDF)
on:
push:
tags:
- "v*"
workflow_dispatch: {}
permissions:
contents: write
env:
IDF_VERSION: "v6.0"
IDF_TARGET: "esp32"
PROJECT_NAME: "Thermy"
jobs:
build-and-release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
cache-dependency-path: frontend/pnpm-lock.yaml
- name: Build frontend
run: cd frontend && pnpm install --frozen-lockfile && pnpm build
- name: Build firmware (ESP-IDF)
uses: espressif/esp-idf-ci-action@v1
with:
esp_idf_version: ${{ env.IDF_VERSION }}
target: ${{ env.IDF_TARGET }}
command: |
set -euo pipefail
idf.py set-target ${{ env.IDF_TARGET }}
idf.py build
cd build && esptool.py --chip ${{ env.IDF_TARGET }} merge_bin -o merged-factory.bin -f raw @flash_args
- name: Prepare release artifacts
run: |
set -euo pipefail
mkdir -p dist
# Full factory image (bootloader + partition table + all partitions)
cp build/merged-factory.bin dist/${{ env.PROJECT_NAME }}-factory.bin
# Application-only binary (for OTA update via /api/upload/app)
cp build/${{ env.PROJECT_NAME }}.bin dist/${{ env.PROJECT_NAME }}-app.bin
# WWW FAT partition image (for update via /api/upload/www)
cp build/www.bin dist/${{ env.PROJECT_NAME }}-www.bin
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
body: |
### Firmware files
- **${{ env.PROJECT_NAME }}-factory.bin** — Full factory image (bootloader + partition table + app + www). Use for initial flashing or full recovery via `esptool.py`.
- **${{ env.PROJECT_NAME }}-app.bin** — Application firmware only. Upload via the web UI (Firmware > Application Firmware) for OTA update.
- **${{ env.PROJECT_NAME }}-www.bin** — Web interface FAT image. Upload via the web UI (Firmware > WWW Partition) to update the frontend independently.
files: |
dist/${{ env.PROJECT_NAME }}-factory.bin
dist/${{ env.PROJECT_NAME }}-app.bin
dist/${{ env.PROJECT_NAME }}-www.bin