mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-21 19:31:12 +00:00
324bbd6367
REPLAY_BUILD_FLAGS contains three names but the test compose files
only ever set BUILD_REPLAY_SINK_JSONL. Every prior Reality-Gate run
hit the auto-sync hard-fail before reaching the VideoFileFrameSource
or TlogReplayFcAdapter build-flag gates, so the omission stayed
hidden. AZ-611 makes tests bypass auto-sync, which exposes the next
gate: VideoFileFrameSource raises FrameSourceConfigError
("BUILD_VIDEO_FILE_FRAME_SOURCE is OFF; ... unavailable").
Mirror the airborne binary's flag requirements in both
docker-compose.test.yml (Colima Tier-1) and
docker-compose.test.jetson.yml (Jetson Tier-2). Comment block in
both files documents why all three must be ON.
Co-authored-by: Cursor <cursoragent@cursor.com>
83 lines
2.9 KiB
YAML
83 lines
2.9 KiB
YAML
services:
|
|
companion:
|
|
extends:
|
|
file: docker-compose.yml
|
|
service: companion
|
|
environment:
|
|
LOG_LEVEL: INFO
|
|
|
|
operator-orchestrator:
|
|
extends:
|
|
file: docker-compose.yml
|
|
service: operator-orchestrator
|
|
|
|
mock-sat:
|
|
extends:
|
|
file: docker-compose.yml
|
|
service: mock-sat
|
|
|
|
db:
|
|
extends:
|
|
file: docker-compose.yml
|
|
service: db
|
|
|
|
e2e-runner:
|
|
build:
|
|
context: .
|
|
dockerfile: tests/e2e/Dockerfile
|
|
image: gps-denied-onboard/e2e-runner:dev
|
|
depends_on:
|
|
companion:
|
|
condition: service_healthy
|
|
mock-sat:
|
|
condition: service_healthy
|
|
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"
|
|
# Replay-mode build flags (Invariant 9; see
|
|
# _replay_branch.REPLAY_BUILD_FLAGS). All three must be ON for
|
|
# the replay path to construct — VideoFileFrameSource gates
|
|
# cv2.VideoCapture, TlogReplayFcAdapter gates pymavlink, and
|
|
# JsonlReplaySink gates the noop-transport sink. The Reality
|
|
# Gate e2e was originally validated only at the auto-sync
|
|
# layer (which fired before any of these three were touched);
|
|
# since AZ-611 lets tests bypass auto-sync, the next two
|
|
# gates surface — hence all three are required here.
|
|
BUILD_VIDEO_FILE_FRAME_SOURCE: "ON"
|
|
BUILD_TLOG_REPLAY_ADAPTER: "ON"
|
|
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: {}
|
|
fdr-data: {}
|
|
tile-data: {}
|