wifi-densepose/.github/workflows
ruv 9ee7c5df04 feat(adr-118/p6.5): GitHub Actions mosquitto Docker CI workflow (235/235 GREEN)
Iter 35. Lifts iters 24 + 29 live-broker integration tests out of
skip-mode in CI by spinning up an eclipse-mosquitto:2 service container,
exporting BFLD_MQTT_BROKER, and running the three cargo test matrices.

Added:
- .github/workflows/bfld-mqtt-integration.yml
    * Triggers: push to main / feat/adr-118-* / feat/bfld-*, PR, manual
    * Path filter: only runs when v2/crates/wifi-densepose-bfld/** or the
      workflow file itself changes — protects PR throughput for unrelated
      crate work
    * Service container: eclipse-mosquitto:2 on port 1883 with a
      mosquitto_pub-based healthcheck (5s interval, 10 retries) so the
      runner waits for a real publish-ready broker, not just liveness
    * Top-level timeout-minutes: 15 (bounds runner cost if rumqttc
      handshake hangs)
    * Three cargo test invocations:
        cargo test -p wifi-densepose-bfld --no-default-features
        cargo test -p wifi-densepose-bfld
        cargo test -p wifi-densepose-bfld --features mqtt
      The third one now actually exercises the mosquitto_integration and
      rumqttc_lwt tests, not just the skip-mode path.
    * Belt-and-suspenders nc -z port poll before tests start (service
      container can take a few seconds to bind even with healthcheck)
    * cargo clippy --features mqtt as a continue-on-error gate (signals
      drift; doesn't block the merge yet)
    * RUSTFLAGS=-D warnings, CARGO_INCREMENTAL=0 for stable runs

- v2/crates/wifi-densepose-bfld/tests/ci_workflow.rs (8 named tests):
    Validates the workflow YAML via include_str! — same pattern iter 30
    used for HA blueprints. Catches drift in CI infra:
      workflow_declares_mosquitto_service_container
      workflow_exports_broker_env_for_iter_24_and_29_tests
        (BFLD_MQTT_BROKER pointing at the service container)
      workflow_runs_three_cargo_test_invocations
        (no_default + default + mqtt — three classes of bug surface)
      workflow_waits_for_mosquitto_readiness_before_testing
        (nc -z 1883 port poll)
      workflow_uses_health_check_on_the_service
        (mosquitto_pub-based, not just process liveness)
      workflow_only_triggers_on_bfld_paths
        (path filter to v2/crates/wifi-densepose-bfld/**)
      workflow_pins_runner_to_ubuntu_latest_for_docker_service_support
        (GitHub Actions `services:` doesn't work on macOS/Windows)
      workflow_has_timeout_guard
        (top-level timeout-minutes pinned)

ADR-124 status (iter step 0 sibling check):
- docs/adr/ADR-124-rvagent-mcp-ruvector-npm-integration.md unchanged
  at 431 lines (SENSE-BRIDGE ADR). Scope remains orthogonal.

ACs progressed:
- ADR-122 §2.2 e2e — when this workflow lands on origin/main and the
  next BFLD PR runs, the iter-24 anonymous-event roundtrip + restricted-
  event-omits-identity_risk tests stop printing "skipping" and actually
  publish to / subscribe from mosquitto. Plus the iter-29 LWT publisher
  smoke run gets to fire its session-drop test against a live broker.
- ADR-118 §2.1 ⇄ §2.2 — discovery + state-topic + LWT + worker thread
  all proven in one CI matrix run.

Test config:
- cargo test --no-default-features → 72 passed (ci_workflow cfg-out)
- cargo test                       → 235 passed (227 + 8)

Out of scope (skipped — external resources or hardware):
- ADR-121 calibration — KIT BFId dataset
- ADR-123 production capture — Pi 5 / Nexmon hardware

All other in-crate ACs from the ADR-118 / 119 / 120 / 121 / 122 series
are now covered by the iter 1-35 chain. The cron loop should
consider closing out at this point or pivoting to documentation /
witness-bundle generation for the PR.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-24 18:49:49 -04:00
..
bfld-mqtt-integration.yml feat(adr-118/p6.5): GitHub Actions mosquitto Docker CI workflow (235/235 GREEN) 2026-05-24 18:49:49 -04:00
cd.yml security: Fix GitHub Actions shell injection vulnerability 2026-02-28 20:40:25 +01:00
ci.yml fix(ci): resolve 3 persistent CI failures + add #679 fix-marker guard 2026-05-20 22:19:28 -04:00
clone-tracking.yml feat(traffic): clone+view tracking → data/clone-data.rvf (ruvector JSONL RVF) (#656) 2026-05-19 19:17:15 -04:00
cog-ha-matter-release.yml cog-ha-matter (ADR-116 P8): CI release workflow + fix inherited filename bug 2026-05-23 23:05:54 -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 ADR-110: ESP32-C6 firmware extension (#764) 2026-05-23 15:34:48 -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
mqtt-integration.yml ADR-115: Home Assistant + Matter integration (#778) 2026-05-23 16:13:28 -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
pip-release.yml feat(adr-117): pip wifi-densepose modernization (PIP-PHOENIX) + ruview sibling release (#786) 2026-05-24 13:00:38 -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
threejs-pages.yml feat(pages): deploy three.js demos to gh-pages/three.js/ (#649) 2026-05-19 18:17:43 -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