diff --git a/migration/migrate_module.sh b/migration/migrate_module.sh index 50470c640..6cb725aed 100755 --- a/migration/migrate_module.sh +++ b/migration/migrate_module.sh @@ -28,9 +28,18 @@ MODULE_ABS="/repo/$(realpath --relative-to="$REPO_DIR" "$MODULE_PATH")" # Use app/run_docker.sh to run the migration inside the prepared Qt6 image # The container will configure just the requested module in a clean build directory. -./app/run_docker.sh "$REPO_DIR" -- bash -lc \ +# Try using app/run_docker.sh; if it fails, fall back to direct docker run using the built image. +if ./app/run_docker.sh "$REPO_DIR" -- bash -lc \ "set -euo pipefail && export LD_LIBRARY_PATH=/opt/Qt/6.8.3/gcc_64/lib:\${LD_LIBRARY_PATH:-} && export QT_QPA_PLATFORM=offscreen && rm -rf /repo/build && mkdir -p /repo/build && cd /repo/build && \ cmake -S /repo -B /repo/build -G Ninja -DCMAKE_PREFIX_PATH=/opt/Qt/6.8.3/gcc_64 -DCMAKE_CXX_STANDARD=20 -DMIGRATE_MODULE=${MODULE_PATH} -DBUILD_TESTING=ON && \ - cmake --build /repo/build -- -j${JOBS} && ctest --test-dir /repo/build --output-on-failure" + cmake --build /repo/build -- -j${JOBS} && ctest --test-dir /repo/build --output-on-failure"; then + echo "Migration run for module ${MODULE_PATH} finished via run_docker.sh. Check ./build for logs and artifacts." +else + echo "run_docker.sh failed or did not forward command args correctly; falling back to direct docker run" + # Build image (cached by Dockerfile in app/) + docker build -t migration-pipeline:ubuntu22.04 ./app >/dev/null || true + docker run --rm -v "$REPO_DIR":/repo -w /repo -e CMAKE_PREFIX_PATH=/opt/Qt/6.8.3/gcc_64 -e Qt6_ROOT=/opt/Qt/6.8.3/gcc_64 -e QT_QPA_PLATFORM=offscreen migration-pipeline:ubuntu22.04 bash -lc "set -euo pipefail && export LD_LIBRARY_PATH=/opt/Qt/6.8.3/gcc_64/lib:\${LD_LIBRARY_PATH:-} && rm -rf /repo/build && mkdir -p /repo/build && cd /repo/build && cmake -S /repo -B /repo/build -G Ninja -DCMAKE_PREFIX_PATH=/opt/Qt/6.8.3/gcc_64 -DCMAKE_CXX_STANDARD=20 -DMIGRATE_MODULE=${MODULE_PATH} -DBUILD_TESTING=ON && cmake --build /repo/build -- -j${JOBS} && ctest --test-dir /repo/build --output-on-failure" + echo "Migration run for module ${MODULE_PATH} finished via direct docker run. Check ./build for logs and artifacts." +fi echo "Migration run for module ${MODULE_PATH} finished. Check ./build for logs and artifacts."