From 47d2500b1d4262289abf9808e470475267ca929b Mon Sep 17 00:00:00 2001 From: Bartosz Burda Date: Thu, 19 Feb 2026 16:03:31 +0000 Subject: [PATCH 1/2] fix: copy cmake/ directory when cloning ros2_medkit in moveit demo Preserve ROS2MedkitCompat.cmake from the ros2_medkit clone before deleting it. Without this, colcon build fails because gateway, serialization, and fault_manager packages cannot resolve their ../../cmake/ROS2MedkitCompat.cmake include path. Mirrors the fix already applied to turtlebot3 and sensor_diagnostics. --- demos/moveit_pick_place/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/demos/moveit_pick_place/Dockerfile b/demos/moveit_pick_place/Dockerfile index a072e96..b25de19 100644 --- a/demos/moveit_pick_place/Dockerfile +++ b/demos/moveit_pick_place/Dockerfile @@ -47,6 +47,7 @@ RUN git clone --depth 1 --branch ${ROS2_MEDKIT_REF} https://github.com/selfpatch ros2_medkit/src/ros2_medkit_fault_manager \ ros2_medkit/src/ros2_medkit_fault_reporter \ ros2_medkit/src/ros2_medkit_diagnostic_bridge . && \ + mkdir -p ${COLCON_WS}/cmake && mv ros2_medkit/cmake/ROS2MedkitCompat.cmake ${COLCON_WS}/cmake/ && \ rm -rf ros2_medkit # Copy demo package from local context From 2a80c0e8cba85890037b05a6d8fb82661c70e249 Mon Sep 17 00:00:00 2001 From: Bartosz Burda Date: Thu, 19 Feb 2026 16:16:20 +0000 Subject: [PATCH 2/2] fix: abort run-demo.sh on Docker build failure set -e does not catch failures inside && lists, so a failed docker build would silently continue and print the success banner. Split build and up into separate steps with an explicit exit on build failure, tearing down any partial containers. --- demos/moveit_pick_place/run-demo.sh | 18 +++++++++++++----- demos/sensor_diagnostics/run-demo.sh | 17 +++++++++++++---- demos/turtlebot3_integration/run-demo.sh | 18 +++++++++++++----- 3 files changed, 39 insertions(+), 14 deletions(-) diff --git a/demos/moveit_pick_place/run-demo.sh b/demos/moveit_pick_place/run-demo.sh index 351b01d..ad7baca 100755 --- a/demos/moveit_pick_place/run-demo.sh +++ b/demos/moveit_pick_place/run-demo.sh @@ -137,15 +137,23 @@ if [[ "$DETACH_MODE" == "true" ]]; then fi if docker compose version &> /dev/null; then - # shellcheck disable=SC2086 - docker compose ${COMPOSE_ARGS} build ${BUILD_ARGS} && \ - docker compose ${COMPOSE_ARGS} up ${DETACH_FLAG} + COMPOSE_CMD="docker compose" else + COMPOSE_CMD="docker-compose" +fi + +# shellcheck disable=SC2086 +if ! ${COMPOSE_CMD} ${COMPOSE_ARGS} build ${BUILD_ARGS}; then + echo "" + echo "❌ Docker build failed! Stopping any partially created containers..." # shellcheck disable=SC2086 - docker-compose ${COMPOSE_ARGS} build ${BUILD_ARGS} && \ - docker-compose ${COMPOSE_ARGS} up ${DETACH_FLAG} + ${COMPOSE_CMD} ${COMPOSE_ARGS} down 2>/dev/null || true + exit 1 fi +# shellcheck disable=SC2086 +${COMPOSE_CMD} ${COMPOSE_ARGS} up ${DETACH_FLAG} + if [[ "$DETACH_MODE" == "true" ]]; then echo "" echo "✅ Demo started in background!" diff --git a/demos/sensor_diagnostics/run-demo.sh b/demos/sensor_diagnostics/run-demo.sh index 305e1e7..c6e9a30 100755 --- a/demos/sensor_diagnostics/run-demo.sh +++ b/demos/sensor_diagnostics/run-demo.sh @@ -93,13 +93,22 @@ if [[ "$DETACH_MODE" == "true" ]]; then fi if docker compose version &> /dev/null; then - # shellcheck disable=SC2086 - docker compose build ${BUILD_ARGS} && docker compose up ${DETACH_FLAG} + COMPOSE_CMD="docker compose" else - # shellcheck disable=SC2086 - docker-compose build ${BUILD_ARGS} && docker-compose up ${DETACH_FLAG} + COMPOSE_CMD="docker-compose" fi +# shellcheck disable=SC2086 +if ! ${COMPOSE_CMD} build ${BUILD_ARGS}; then + echo "" + echo "❌ Docker build failed! Stopping any partially created containers..." + ${COMPOSE_CMD} down 2>/dev/null || true + exit 1 +fi + +# shellcheck disable=SC2086 +${COMPOSE_CMD} up ${DETACH_FLAG} + if [[ "$DETACH_MODE" == "true" ]]; then echo "" echo "✅ Demo started in background!" diff --git a/demos/turtlebot3_integration/run-demo.sh b/demos/turtlebot3_integration/run-demo.sh index cabab5d..3af1a39 100755 --- a/demos/turtlebot3_integration/run-demo.sh +++ b/demos/turtlebot3_integration/run-demo.sh @@ -144,15 +144,23 @@ if [[ "$DETACH_MODE" == "true" ]]; then fi if docker compose version &> /dev/null; then - # shellcheck disable=SC2086 - docker compose ${COMPOSE_ARGS} build ${BUILD_ARGS} && \ - docker compose ${COMPOSE_ARGS} up ${DETACH_FLAG} + COMPOSE_CMD="docker compose" else + COMPOSE_CMD="docker-compose" +fi + +# shellcheck disable=SC2086 +if ! ${COMPOSE_CMD} ${COMPOSE_ARGS} build ${BUILD_ARGS}; then + echo "" + echo "❌ Docker build failed! Stopping any partially created containers..." # shellcheck disable=SC2086 - docker-compose ${COMPOSE_ARGS} build ${BUILD_ARGS} && \ - docker-compose ${COMPOSE_ARGS} up ${DETACH_FLAG} + ${COMPOSE_CMD} ${COMPOSE_ARGS} down 2>/dev/null || true + exit 1 fi +# shellcheck disable=SC2086 +${COMPOSE_CMD} ${COMPOSE_ARGS} up ${DETACH_FLAG} + if [[ "$DETACH_MODE" == "true" ]]; then echo "" echo "✅ Demo started in background!"