CI/Simulator: Add Metadrive test to CI (#32352)

* works consistently

* ci gha

* fix

* navd

* fix

* cleanup

* change button

* cleanup

---------

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
old-commit-hash: aca01365e6
This commit is contained in:
Hoang Bui 2024-05-05 19:32:08 -04:00 committed by GitHub
parent aa7d828769
commit 29a1763d01
3 changed files with 27 additions and 5 deletions

View File

@ -37,8 +37,8 @@ jobs:
run: |
${{ env.RUN }} "pytest tools/plotjuggler/"
simulator:
name: simulator
simulator_build:
name: simulator docker build
runs-on: ubuntu-latest
if: github.repository == 'commaai/openpilot'
timeout-minutes: 45
@ -56,6 +56,28 @@ jobs:
run: |
selfdrive/test/docker_build.sh sim
simulator_driving:
name: simulator driving
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
with:
submodules: true
- run: git lfs pull
- uses: ./.github/workflows/setup-with-retry
- name: Build base docker image
run: eval "$BUILD"
- name: Build openpilot
run: |
${{ env.RUN }} "scons -j$(nproc)"
- name: Run bridge test
run: |
${{ env.RUN }} "export MAPBOX_TOKEN='pk.eyJ1Ijoiam5ld2IiLCJhIjoiY2xxNW8zZXprMGw1ZzJwbzZneHd2NHljbSJ9.gV7VPRfbXFetD-1OVF0XZg' && \
source selfdrive/test/setup_xvfb.sh && \
source selfdrive/test/setup_vsound.sh && \
CI=1 tools/sim/tests/test_metadrive_bridge.py"
devcontainer:
name: devcontainer
runs-on: ubuntu-latest

View File

@ -46,6 +46,7 @@ class SimulatorBridge(ABC):
self.world: World | None = None
self.past_startup_engaged = False
self.startup_button_prev = True
def _on_shutdown(self, signal, frame):
self.shutdown()
@ -161,7 +162,8 @@ Ignition: {self.simulator_state.ignition} Engaged: {self.simulator_state.is_enga
self.past_startup_engaged = True
elif not self.past_startup_engaged and controlsState.engageable:
self.simulator_state.cruise_button = CruiseButtons.DECEL_SET # force engagement on startup
self.simulator_state.cruise_button = CruiseButtons.DECEL_SET if self.startup_button_prev else CruiseButtons.MAIN # force engagement on startup
self.startup_button_prev = not self.startup_button_prev
throttle_out = throttle_op if self.simulator_state.is_engaged else throttle_manual
brake_out = brake_op if self.simulator_state.is_engaged else brake_manual

View File

@ -62,8 +62,6 @@ class TestSimBridgeBase(unittest.TestCase):
while time.monotonic() < start_time + max_time_per_step:
sm.update()
q.put("cruise_down") # Try engaging
if sm.all_alive() and sm['controlsState'].active:
control_active += 1