From 339bffa97df3b4302c696eb733bbc0ce733658f2 Mon Sep 17 00:00:00 2001 From: agessaman Date: Sat, 8 Aug 2026 20:02:31 -0700 Subject: [PATCH] ci: sync the portal page to the flasher site for /webconfig MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The flasher's /webconfig page frames webui/index.html — the real page this firmware serves — and runs it against a browser simulator, so visitors drive the actual product rather than looking at screenshots of it. That only stays true if the page travels with the docs, so it joins the .md files this workflow already syncs, and the flasher's build-webconfig-demo.py re-injects the simulator. Triggers on webui/index.html alongside the existing markdown paths. Still gated on observer-firmware, so nothing publishes until the portal CLI reaches the release channel at v1.17.0; the flasher carries a hand-copied page until then. --- .github/workflows/sync-flasher-content.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.github/workflows/sync-flasher-content.yml b/.github/workflows/sync-flasher-content.yml index 93ef1b34..7c4c409d 100644 --- a/.github/workflows/sync-flasher-content.yml +++ b/.github/workflows/sync-flasher-content.yml @@ -19,6 +19,9 @@ on: - '**.md' - 'docs/**' - 'scripts/gen_changelog.py' + # /webconfig frames the real portal page against a browser simulator, so + # the page itself is a synced doc asset like the .md files above. + - 'webui/index.html' # Own group: serialize doc syncs against each other only. Deliberately NOT shared # with build-observer-firmwares.yml — a shared group let one workflow cancel the @@ -59,6 +62,21 @@ jobs: fi done + - name: Sync the WebConfig Portal Page into Flasher + run: | + # flasher/webconfig.html embeds the REAL portal page in a device + # surround and runs it against lib/webconfig-sim.js, which intercepts + # fetch() so no device is needed. Syncing the page is what keeps that + # demo honest — the alternative is screenshots, which go stale without + # anyone noticing. The build script only injects a