Skip to content

Adds the ability to run stretch_new_robot_install.sh in a Docker container#8

Merged
hello-robot-shehab merged 1 commit into
mainfrom
feature/test_with_docker
Jul 8, 2026
Merged

Adds the ability to run stretch_new_robot_install.sh in a Docker container#8
hello-robot-shehab merged 1 commit into
mainfrom
feature/test_with_docker

Conversation

@hello-robot-shehab

@hello-robot-shehab hello-robot-shehab commented Jun 4, 2026

Copy link
Copy Markdown
Contributor
  • Added a GitHub Action to run on a PR to main
  • Added a Dockerfile to run stretch_new_robot_install.sh in a Docker container.

Example run: https://github.com/hello-robot/stretch4_install/actions/runs/26973911890/job/79595912185?pr=8

To Test

  1. Run git checkout feature/test_with_docker
  2. Run run ./.github/docker/build.sh -f stretch-se4-0000 to trigger stretch_new_robot_install.sh run on a Docker Ubnutu 24.04 image locally.
  3. See the run on this PR, verify that it passed: https://github.com/hello-robot/stretch4_install/actions/workflows/test_with_docker.yaml

@hello-binit

Copy link
Copy Markdown
Contributor

This is nice, a few questions:

  • Does the action error out on failure? Does it include the stretch_user/log logs files in the report?
  • Where does the calibration directory come from?
  • What do the tests check for?

@hello-robot-shehab

hello-robot-shehab commented Jun 5, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for taking a look @hello-binit !

  • Does the action error out on failure? Does it include the stretch_user/log logs files in the report?

It does error out, for example, it caught an apt install error here and failed: https://github.com/hello-robot/stretch_install/actions/runs/26973973022/job/79596126382#step:5:1665
It does not include the logs, but I can make it upload them to a github actions artifact.

  • Where does the calibration directory come from?

We create it with dummy data, similar to the stretch_simulate package in stretch4_ros2. e.g.

# Create stretch_configuration_params.yaml and stretch_user_params.yaml:

printf 'robot:\n  batch_name: NA\n  serial_no: "%s"\n  model_name: SE3\n  tool: eoa_wrist_dw3_tool_sg3\n' "${SETUP_FLEET_ID##*-}" > /home/hello-robot/${SETUP_FLEET_ID}/stretch_configuration_params.yaml

touch /home/hello-robot/${SETUP_FLEET_ID}/stretch_user_params.yaml
  • What do the tests check for?

Currently it runs through the stretch_new_robot_install.sh script (pip installs, colcon build, etc..) and fails the GitHub Action if it fails. Then it runs through some checks, such as making sure the stretch_user exists, .bashrc contains HELLO_FLEET_ID, and a few generic tests.
I want to improve this in the future to add checks for making sure the server runs properly, ros2 launch files work, etc.. This would require mocking/using sim or setting this up to work on a real robot.

@hello-robot-shehab
hello-robot-shehab requested review from hello-binit and removed request for hello-bharadwaj, hello-binit and hello-jkoubi July 7, 2026 15:08
@hello-robot-shehab
hello-robot-shehab merged commit 9415e3c into main Jul 8, 2026
1 check passed
@hello-robot-shehab
hello-robot-shehab deleted the feature/test_with_docker branch July 8, 2026 18:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants