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>
pull/31896/head^2
Hoang Bui 12 months ago committed by GitHub
parent 5f8b53be33
commit aca01365e6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 26
      .github/workflows/tools_tests.yaml
  2. 4
      tools/sim/bridge/common.py
  3. 2
      tools/sim/tests/test_sim_bridge.py

@ -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

@ -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

@ -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

Loading…
Cancel
Save