mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-21 08:21:13 +00:00
[AZ-603] [AZ-604] e2e-runner: install SUT, fix entrypoint (Track 1)
Multi-stage Ubuntu 22.04 e2e-runner image installs gps-denied-onboard (editable) into /opt/venv so the AZ-404 replay tests can subprocess gps-denied-replay against the Derkachi fixture. Image layout mirrors the host repo (/opt/pyproject.toml + /opt/src + /opt/tests bind mount) so Path(__file__).parents[3] resolves to /opt and AC-4's AST scan finds the components dir. Entrypoint now runs `pytest /opt/tests/e2e/` instead of the empty `scenarios/` dir. The bootstrap harness collects 24 tests vs. 0 before. Compose: e2e-runner env mirrors the companion service (FullSystemConfig requirements) plus RUN_REPLAY_E2E=1, BUILD_REPLAY_SINK_JSONL=ON; bind-mounts the Derkachi fixture dir; adds writable fdr-data / tile-data volumes the SUT requires. Reality Gate signal is now real: 17 pass / 5 fail / 1 skip / 1 xfail. The 5 heavy-AC failures share root cause AZ-614 (tlog synth time-base mismatch, surfaced by the now-functional harness). Also archives the replayed leftover entries (csv_reporter -> AZ-601, harness rehab -> AZ-602 epic + 11 child stories). Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -34,12 +34,38 @@ services:
|
||||
db:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
# FullSystemConfig requires this full env set (see
|
||||
# src/gps_denied_onboard/config/loader.py:_check_required_env).
|
||||
# Values mirror the `companion` service in docker-compose.yml so
|
||||
# the subprocess invoked by the replay tests can resolve identically.
|
||||
GPS_DENIED_FC_PROFILE: ardupilot_plane
|
||||
GPS_DENIED_TIER: "1"
|
||||
DB_URL: postgresql://gps_denied:dev@db:5432/gps_denied
|
||||
SATELLITE_PROVIDER_URL: http://mock-sat:5100
|
||||
COMPANION_URL: http://companion:8080
|
||||
CAMERA_CALIBRATION_PATH: /opt/tests/fixtures/calibration/adti26.json
|
||||
LOG_LEVEL: INFO
|
||||
LOG_SINK: console
|
||||
INFERENCE_BACKEND: pytorch_fp16
|
||||
FDR_PATH: /var/lib/gps-denied/fdr
|
||||
TILE_CACHE_PATH: /var/lib/gps-denied/tiles
|
||||
MAVLINK_SIGNING_KEY: /opt/tests/fixtures/mavlink_signing/dev_key
|
||||
# Track-1 bootstrap harness: enable the heavy replay-pipeline tests
|
||||
# in tests/e2e/replay/. AZ-602 / AZ-603 / AZ-604.
|
||||
RUN_REPLAY_E2E: "1"
|
||||
# NoopMavlinkTransport / JsonlReplaySink build flag — the binary
|
||||
# refuses to construct the replay transport without it (AZ-612).
|
||||
BUILD_REPLAY_SINK_JSONL: "ON"
|
||||
volumes:
|
||||
- ./tests:/opt/tests:ro
|
||||
# Derkachi fixture (~60 s clip) consumed by the replay e2e suite.
|
||||
# Mount path matches `tests/e2e/replay/conftest._derkachi_dir()`,
|
||||
# which resolves to <repo-root>/_docs/00_problem/input_data/...
|
||||
# where <repo-root> == /opt inside the container.
|
||||
- ./_docs/00_problem/input_data:/opt/_docs/00_problem/input_data:ro
|
||||
# Writable runtime dirs the SUT expects (FDR_PATH, TILE_CACHE_PATH).
|
||||
- fdr-data:/var/lib/gps-denied/fdr
|
||||
- tile-data:/var/lib/gps-denied/tiles
|
||||
|
||||
volumes:
|
||||
db-data: {}
|
||||
|
||||
Reference in New Issue
Block a user