Skip to content

ci: add build + host-test workflow - #1

Merged
RndmCodeGuy20 merged 11 commits into
mainfrom
ci/add-workflow
Jul 21, 2026
Merged

ci: add build + host-test workflow#1
RndmCodeGuy20 merged 11 commits into
mainfrom
ci/add-workflow

Conversation

@RndmCodeGuy20

Copy link
Copy Markdown
Owner

Verifying CI end-to-end.

…se 2)

- Add DnsBlocklist with label-boundary suffix matching and atomic block counter
- Seed blocklist from baked-in defaults on first boot, persist to NVS
- Sinkhole blocked A queries to 0.0.0.0, NXDOMAIN for other qtypes
- Insert blocklist check between local table and cache in resolution order
- Add read-only GET /api/blocklist endpoint
- Add phase 2 design spec
- Replace default single-app partition table with a custom one (4MB app, 64KB nvs) to fix near-full app partition
… 3-4)

- Add DnsMetrics singleton with atomic query/cache/forward/SERVFAIL counters
- Add upstream-latency histogram sourced from DnsForwarder's in-flight slots
- Expose GET /metrics in Prometheus plaintext format
- Add mDNS responder advertising the device as edge-dns.local (A + AAAA)
- Advertise an _http._tcp service pointing at the existing dashboard
- Bring up IPv6 link-local addressing on the STA netif for AAAA support
- Add espressif/mdns as a managed component dependency
- Ignore managed_components/ (regenerated by the component manager)
- Document both phases in ARCHITECTURE.md, README.md, and design specs
… DNS phase 5)

- Add DnsRecordStore: mutex-guarded, NVS-persisted DNS record table
- Seed the store from DNS_RECORDS_DEFAULTS (dns_records.h) on first boot
- Replace dns_server.cpp's constexpr record lookup with record_store().find()
- Add POST/PUT/DELETE /api/records behind HTTP Basic auth
- Add OPTIONS preflight and reflect-origin CORS on /api/records
- Validate hostname syntax and IPv4 format on mutating requests
- Bump httpd max_uri_handlers for the new routes' headroom
- Document the httpd_resp_set_hdr() pointer-lifetime gotcha found on hardware
- Document the phase in ARCHITECTURE.md, README.md, and a design spec
…e DNS phase 6)

- Add optional IPv4/IPv6 addresses per DnsRecordEntry (dual-stack, never neither)
- Return NODATA instead of NXDOMAIN when a name exists but lacks the queried family
- Add build_aaaa_record_response and build_nodata_response to dns_wire
- Keep NVS record blobs backward-compatible with pre-phase-6 IPv4-only entries
- Extend the CRUD API with an optional "ipv6" field on /api/records
- Retry a timed-out forwarded query once against a secondary upstream before SERVFAIL
- Accept upstream replies from either address, matched by slot/generation
- Add dns_upstream_retries_total metric; narrow timeouts_total to final give-ups
- Add host_test/: Unity suite for dns_wire.cpp on ESP-IDF's linux target
- Document the phase in ARCHITECTURE.md, README.md, and a design spec
- Move contents: write from workflow-level to the release job
- Avoid granting write access to firmware-build/host-tests, which never need it
- GitHub Actions container jobs skip the espressif/idf image's own
  ENTRYPOINT, so idf.py is never on PATH without sourcing export.sh first
- Add ". \"\$IDF_PATH/export.sh\"" to every run step that calls idf.py
- idf.py silently ignores -C when it appears after set-target's
  positional target argument, so it was configuring the repo root
  (needing esp_wifi et al) instead of host_test/
- Set the step's working-directory to host_test/ instead, matching how
  this is run locally
@RndmCodeGuy20
RndmCodeGuy20 merged commit c7f55c6 into main Jul 21, 2026
6 checks passed
@RndmCodeGuy20
RndmCodeGuy20 deleted the ci/add-workflow branch July 21, 2026 18:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant