From 0ef2c729740f3b7b9fbb8e351b522bbd3094f98f Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Sun, 15 Feb 2026 11:18:20 -0800 Subject: [PATCH] improve HITL robustness (#2333) --- .gitignore | 3 +++ Dockerfile | 3 ++- Jenkinsfile | 2 +- tests/hitl/conftest.py | 1 + 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 612b14f7..67edc8b6 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,6 @@ tests/safety/coverage.info *.profraw *.profdata mull.yml + +.claude/ +TASK.md diff --git a/Dockerfile b/Dockerfile index a8a80e97..a41d0c6f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,8 @@ WORKDIR $WORKDIR # deps install COPY pyproject.toml __init__.py setup.sh $WORKDIR -RUN mkdir -p $WORKDIR/python/ && touch $WORKDIR/__init__.py +RUN mkdir -p $WORKDIR/python/ $WORKDIR/board/body/ $WORKDIR/board/jungle/ && \ + touch $WORKDIR/__init__.py $WORKDIR/board/__init__.py $WORKDIR/board/body/__init__.py $WORKDIR/board/jungle/__init__.py RUN apt-get update && apt-get install -y --no-install-recommends sudo && DEBIAN_FRONTEND=noninteractive $WORKDIR/setup.sh # second pass for the opendbc moving tag diff --git a/Jenkinsfile b/Jenkinsfile index d9b1c464..1b1a47a0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -15,7 +15,7 @@ def docker_run(String step_label, int timeout_mins, String cmd) { def phone(String ip, String step_label, String cmd) { withCredentials([file(credentialsId: 'id_rsa', variable: 'key_file')]) { def ssh_cmd = """ -ssh -tt -o StrictHostKeyChecking=no -i ${key_file} 'comma@${ip}' /usr/bin/bash <<'END' +ssh -tt -o StrictHostKeyChecking=no -o ConnectTimeout=30 -o ConnectionAttempts=3 -o ServerAliveInterval=10 -o ServerAliveCountMax=3 -i ${key_file} 'comma@${ip}' /usr/bin/bash <<'END' set -e diff --git a/tests/hitl/conftest.py b/tests/hitl/conftest.py index ecc3a455..a8adab07 100644 --- a/tests/hitl/conftest.py +++ b/tests/hitl/conftest.py @@ -148,6 +148,7 @@ def fixture_panda_setup(request): init_jungle() # init panda + assert Panda.wait_for_panda(_panda_serial, timeout=10), "panda not found" p = Panda(serial=_panda_serial) p.reset(reconnect=True)