Reconciles develop to master's latest renovate values for deps bumped on the 2.7 line but never back-merged, so the develop->master 2.8 promotion (#10777) doesn't regress them. Done as a value reconcile, not a cherry-pick: several master commits are superseded (5 device-ui bumps, 2 ststm32 bumps), and develop's stale archive/refs/tags/ URL form actually blocked renovate from bumping these (the regex expects archive/<version>.zip). GitHub Actions: - actions/checkout v6 -> v7 (35 refs) - actions/cache v5 -> v6 - actions/github-script v8 -> v9 (3 refs) - actions/stale v10.2.0 -> v10.3.0 Build / platform: - alpine 3.23 -> 3.24 (alpine.Dockerfile) - platformio/ststm32 19.5.0 -> 19.7.0 - platformio/nordicnrf52 10.11.0 -> 10.12.0 Libraries: - Adafruit SSD1306 2.5.16 -> 2.5.17 - SparkFun MMC5983MA v1.1.4 -> v1.1.5 - Sensirion I2C SCD30 1.0.0 -> 1.1.1 - meshtastic esp8266-oled-ssd1306 6bfd1f1 -> 2e26010 Deliberately excluded: - meshtastic/device-ui digest: coupled to firmware protobuf/API and develop has diverged hard (NodeDB v25); left for a separate maintainer bump + visual check. - libpax: develop uses the mverch67 fork (pinned by Arduino-3.x migration #9122), master uses dbinfrago -- a fork divergence, not a version bump; not reconciled. - platform-native digest: develop already at 61067ac (equal to master).
62 lines
2.2 KiB
YAML
62 lines
2.2 KiB
YAML
name: Build PortDuino WASM
|
|
|
|
# Reusable workflow — called as the `build-wasm` job of the main CI workflow
|
|
# (main_matrix.yml), so the WebAssembly portduino node is built like every other
|
|
# platform. Builds the [env:native-wasm] target (src/platform/portduino/wasm/) with
|
|
# `pio run -e native-wasm` so it can't silently bit-rot. Software/CI only — asserts the
|
|
# full mesh stack + RadioLib + Crypto compile and link to meshnode.{mjs,wasm}
|
|
# via the meshtastic/platform-wasm PlatformIO platform (emcc/Asyncify). It does
|
|
# NOT exercise the radio (that's CH341/WebUSB, hardware).
|
|
|
|
on:
|
|
workflow_call:
|
|
workflow_dispatch:
|
|
|
|
permissions: {}
|
|
|
|
jobs:
|
|
build-wasm:
|
|
name: Build PortDuino WASM
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
with:
|
|
submodules: recursive
|
|
|
|
# Python + PlatformIO. (`pio run -e native-wasm` installs its own libdeps and the
|
|
# platform-wasm/framework-portduino packages; it needs no native apt libs.)
|
|
- name: Setup native build
|
|
uses: ./.github/actions/setup-native
|
|
|
|
- name: Setup Emscripten SDK
|
|
uses: emscripten-core/setup-emsdk@v16
|
|
with:
|
|
version: 6.0.1
|
|
actions-cache-folder: emsdk-cache
|
|
|
|
- name: Build PortDuino WASM
|
|
run: platformio run -e native-wasm
|
|
|
|
- name: Assert WASM artifacts
|
|
run: |
|
|
OUT=.pio/build/native-wasm
|
|
if [ ! -s "$OUT/meshnode.mjs" ] || [ ! -s "$OUT/meshnode.wasm" ]; then
|
|
echo "::error::wasm artifacts missing"; exit 1
|
|
fi
|
|
# The emcc link succeeds even if embedded EM_ASM JS is malformed, so
|
|
# parse the generated ES-module loader to catch runtime-JS breakage
|
|
# (e.g. a formatter splitting !== inside EM_ASM).
|
|
node --check "$OUT/meshnode.mjs" || { echo "::error::meshnode.mjs failed JS parse"; exit 1; }
|
|
ls -lah "$OUT"/meshnode.*
|
|
|
|
- name: Upload WASM artifacts
|
|
if: success()
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: portduino-wasm
|
|
overwrite: true
|
|
path: |
|
|
.pio/build/native-wasm/meshnode.mjs
|
|
.pio/build/native-wasm/meshnode.wasm
|
|
retention-days: 14
|