wifi-densepose/.github/workflows
Blossom f54f0285bd
fix(ci): build multi-arch wifi-densepose image — linux/arm64 was missing (closes #625) (#631)
PR #547 refreshed the sensing-server docker publish and the README badge
advertises 'Docker: multi-arch amd64 + arm64', but
.github/workflows/sensing-server-docker.yml only sets
'platforms: linux/amd64'. The arm64 layer was never actually wired in.

Consequence on Docker Hub today (ruvnet/wifi-densepose:latest, last pushed
2026-05-14 by #547):

  $ curl -s https://hub.docker.com/v2/repositories/ruvnet/wifi-densepose/tags/latest/
  images:
    arch=amd64    os=linux
    arch=unknown  os=unknown   # the 1.5KB attestation layer, not arm64

So Apple Silicon Macs (the platform in #625) hit:

  docker pull ruvnet/wifi-densepose:latest
  Error: no matching manifest for linux/arm64/v8 in the manifest list

This is the same crash class as the closed-unmerged #136 'Docker error on
MacOS'; #625 is a fresh report (Mac M3 Pro, macOS Tahoe 26.4.1) of the same
bug.

Fix is the standard buildx multi-arch recipe:

  1. Add docker/setup-qemu-action@v3 before setup-buildx so the amd64 runner
     can cross-build the arm64 layer (QEMU user-mode emulation).
  2. Change 'platforms: linux/amd64' -> 'platforms: linux/amd64,linux/arm64'.

docker/Dockerfile.rust is already arch-agnostic — no '--target' flag, no
amd64-only Cargo deps, only 'cc = "1.0"' which is cross-aware — so no
Dockerfile changes are needed. Buildx + QEMU does the rest.

Smoke tests are unaffected: they 'docker pull' on ubuntu-latest (amd64), so
the runner auto-selects the amd64 entry from the multi-arch manifest.
Multi-arch manifests are transparent to single-arch consumers.

Scope discipline: this PR only touches sensing-server-docker.yml (the file
issue #625 is about). nvsim-server-docker.yml has the identical
'platforms: linux/amd64' bug but is out of scope here — happy to file
a follow-up if useful.

Note (not part of this fix): the last 5 runs of this workflow have failed
at the 'Log in to Docker Hub' step (DOCKERHUB_TOKEN secret looks rotated/
expired). That's a separate, secret-side issue I can't touch from a PR.
Once that's resolved, the next push to main will produce a proper
amd64+arm64 manifest for the first time.

Co-authored-by: Mack Ding <mack@claws.ltd>
2026-05-19 10:02:00 -04:00
..
cd.yml security: Fix GitHub Actions shell injection vulnerability 2026-02-28 20:40:25 +01:00
ci.yml chore(deps): bump codecov/codecov-action from 4 to 6 (#454) 2026-05-17 18:11:36 -04:00
dashboard-a11y.yml chore(deps): bump actions/setup-node from 4 to 6 (#447) 2026-05-17 18:11:11 -04:00
dashboard-pages.yml chore(deps): bump actions/setup-node from 4 to 6 (#447) 2026-05-17 18:11:11 -04:00
desktop-release.yml chore(deps): bump actions/setup-node from 4 to 6 (#447) 2026-05-17 18:11:11 -04:00
firmware-ci.yml fix(firmware): bump version.txt to 0.6.4 + CI guard for tag/version match (#505) 2026-05-11 10:48:14 -04:00
firmware-qemu.yml fix(firmware): fall detection, 4MB flash, QEMU CI (#263, #265) 2026-03-15 11:49:29 -04:00
fix-regression-guard.yml chore(deps): bump actions/setup-python from 5 to 6 (#453) 2026-05-17 18:11:33 -04:00
nvsim-server-docker.yml chore(deps): bump docker/metadata-action from 5 to 6 (#449) 2026-05-17 18:11:18 -04:00
pointcloud-pages.yml feat(pointcloud): integrate ESP32 CSI as optional data stream from hosted viewer 2026-04-29 20:33:00 -04:00
security-scan.yml chore(deps): bump actions/setup-python from 5 to 6 (#453) 2026-05-17 18:11:33 -04:00
sensing-server-docker.yml fix(ci): build multi-arch wifi-densepose image — linux/arm64 was missing (closes #625) (#631) 2026-05-19 10:02:00 -04:00
update-submodules.yml ci: fix "Update vendor submodules" workflow (identity + drop --merge) 2026-05-11 12:33:40 -04:00
verify-pipeline.yml fix(verify): cross-platform deterministic proof — 6-decimal quantize + thread-pinning (closes #560) (#609) 2026-05-17 19:50:55 -04:00