From 7eee9679473dc9c70dc6b3d129ff601f63cda3e0 Mon Sep 17 00:00:00 2001 From: Francisco Gallego Salido Date: Tue, 10 Feb 2026 20:46:43 +0100 Subject: [PATCH] Update CI to use Connext 7.7.0 Signed-off-by: Francisco Gallego Salido --- linux_docker_resources/Dockerfile | 20 ++++-- linux_docker_resources/Dockerfile-RHEL | 13 +++- linux_docker_resources/entry_point.sh | 86 +++++++++++++++++++------- windows_docker_resources/Dockerfile | 23 ++++--- 4 files changed, 100 insertions(+), 42 deletions(-) diff --git a/linux_docker_resources/Dockerfile b/linux_docker_resources/Dockerfile index 8349cfdc..960db2ca 100644 --- a/linux_docker_resources/Dockerfile +++ b/linux_docker_resources/Dockerfile @@ -154,12 +154,15 @@ RUN apt-get update && apt-get install --no-install-recommends -y lcov RUN pip3 install -U git+https://github.com/ahcorde/lcov-to-cobertura-xml@master # Install the Connext binary from the OSRF repositories. if ROS_DISTRO is humble or jazzy -# install rti-connext-dds-6.0.1 else install rti-connext-dds-7.3.0-ros. +# install rti-connext-dds-6.0.1 else if ROS_DISTRO is kilted install rti-connext-dds-7.3.0-ros +# else install rti-connext-dds-7.7.0-ros. RUN if test \( ${PLATFORM} = x86 -a ${INSTALL_CONNEXT_DEBS} = true \); then \ if test \( ${ROS_DISTRO} = humble -o ${ROS_DISTRO} = jazzy \); then \ apt-get update && RTI_NC_LICENSE_ACCEPTED=yes apt-get install -y rti-connext-dds-6.0.1; \ - else \ + elif test ${ROS_DISTRO} = kilted; then \ apt-get update && RTI_NC_LICENSE_ACCEPTED=yes apt-get install -y rti-connext-dds-7.3.0-ros; \ + else \ + apt-get update && RTI_NC_LICENSE_ACCEPTED=yes apt-get install -y rti-connext-dds-7.7.0-ros; \ fi; \ fi @@ -174,20 +177,27 @@ RUN apt-get update && apt-get install --no-install-recommends -y python3-pexpect COPY rticonnextdds-src/ /tmp/rticonnextdds-src # Join the correct Connext version files based on the value of ROS_DISTRO. -RUN if test ${ROS_DISTRO} = jazzy -o ${ROS_DISTRO} = humble; then \ +RUN \ +if test ${ROS_DISTRO} = jazzy -o ${ROS_DISTRO} = humble; then \ for splitpkg in \ /tmp/rticonnextdds-src/rti_connext_dds-6.0.1-pro-host-x64Linux.run \ /tmp/rticonnextdds-src/rti_connext_dds-6.0.1.25-pro-host-x64Linux.rtipkg \ /tmp/rticonnextdds-src/rti_connext_dds-6.0.1.25-pro-target-x64Linux4gcc7.3.0.rtipkg; do \ cat $(echo ${splitpkg}.0?? | sort) > $splitpkg; \ done; \ - else \ +elif test ${ROS_DISTRO} = kilted; then \ for splitpkg in \ /tmp/rticonnextdds-src/rti_connext_dds-7.3.0-pro-host-x64Linux.run \ /tmp/rticonnextdds-src/rti_connext_dds-7.3.0-pro-target-x64Linux4gcc7.3.0.rtipkg; do \ cat $(echo ${splitpkg}.0?? | sort) > $splitpkg; \ done; \ - fi +else \ + for splitpkg in \ + /tmp/rticonnextdds-src/rti_connext_dds-7.7.0-pro-host-x64Linux.run \ + /tmp/rticonnextdds-src/rti_connext_dds-7.7.0-pro-target-x64Linux4gcc8.5.0.rtipkg; do \ + cat $(echo ${splitpkg}.0?? | sort) > $splitpkg; \ + done; \ +fi # Make the RTI Connext installation script executable. For any version of Connext. RUN chmod 755 /tmp/rticonnextdds-src/rti_connext_dds-*-pro-host-x64Linux.run diff --git a/linux_docker_resources/Dockerfile-RHEL b/linux_docker_resources/Dockerfile-RHEL index 8fce4c86..22122faf 100644 --- a/linux_docker_resources/Dockerfile-RHEL +++ b/linux_docker_resources/Dockerfile-RHEL @@ -194,20 +194,27 @@ RUN dnf install \ COPY rticonnextdds-src/ /tmp/rticonnextdds-src # Join the correct Connext version files based on the value of ROS_DISTRO. -RUN if test ${ROS_DISTRO} = jazzy -o ${ROS_DISTRO} = humble; then \ +RUN \ +if test ${ROS_DISTRO} = jazzy -o ${ROS_DISTRO} = humble; then \ for splitpkg in \ /tmp/rticonnextdds-src/rti_connext_dds-6.0.1-pro-host-x64Linux.run \ /tmp/rticonnextdds-src/rti_connext_dds-6.0.1.25-pro-host-x64Linux.rtipkg \ /tmp/rticonnextdds-src/rti_connext_dds-6.0.1.25-pro-target-x64Linux4gcc7.3.0.rtipkg; do \ cat $(echo ${splitpkg}.0?? | sort) > $splitpkg; \ done; \ - else \ +elif test ${ROS_DISTRO} = kilted; then \ for splitpkg in \ /tmp/rticonnextdds-src/rti_connext_dds-7.3.0-pro-host-x64Linux.run \ /tmp/rticonnextdds-src/rti_connext_dds-7.3.0-pro-target-x64Linux4gcc7.3.0.rtipkg; do \ cat $(echo ${splitpkg}.0?? | sort) > $splitpkg; \ done; \ - fi +else \ + for splitpkg in \ + /tmp/rticonnextdds-src/rti_connext_dds-7.7.0-pro-host-x64Linux.run \ + /tmp/rticonnextdds-src/rti_connext_dds-7.7.0-pro-target-x64Linux4gcc8.5.0.rtipkg; do \ + cat $(echo ${splitpkg}.0?? | sort) > $splitpkg; \ + done; \ +fi # Make the RTI Connext installation script executable. For any version of Connext. RUN chmod 755 /tmp/rticonnextdds-src/rti_connext_dds-*-pro-host-x64Linux.run diff --git a/linux_docker_resources/entry_point.sh b/linux_docker_resources/entry_point.sh index 27ac9aa6..a4c0fd51 100755 --- a/linux_docker_resources/entry_point.sh +++ b/linux_docker_resources/entry_point.sh @@ -41,50 +41,92 @@ if [ "${ARCH}" = "x86_64" -a "${ID}" = "ubuntu" ]; then if [ -z "${IGNORE_CONNEXTDDS}" ]; then echo "Installing Connext..." - export CONNEXT_FULL_VERSION="7.3.0" + # Set Connext version, OpenSSL version and base/target architecture variables: + # - Lyrical/Rolling: + # - Version: Connext 7.7.0 + # - OpenSSL version: 3.5.5 + # - Base architecture: x64Linux4gcc8.5.0 + # - Target architecture: x64Linux4gcc8.5.0 + # - Kilted: + # - Version: Connext 7.3.0 + # - OpenSSL version: 3.0.12 + # - Base architecture: x64Linux3gcc4.8.2 + # - Target architecture: x64Linux4gcc7.3.0 + # - Humble/Jazzy: + # - Version: Connext 6.0.1.25 + # - OpenSSL version: 1.1.1k + # - Base architecture: x64Linux2.6gcc4.4.5 + # - Target architecture: x64Linux4gcc7.3.0 + export CONNEXT_FULL_VERSION="7.7.0" export CONNEXT_DISPLAY_VERSION="$CONNEXT_FULL_VERSION" - if [ "${ROS_DISTRO}" = "jazzy" ] || [ "${ROS_DISTRO}" = "humble" ]; then - export CONNEXT_FULL_VERSION="6.0.1.25" - export CONNEXT_DISPLAY_VERSION="${CONNEXT_FULL_VERSION%.*}" - fi + export OPENSSL_VERSION="3.5.5" + export CONNEXT_BASE_ARCH="x64Linux4gcc8.5.0" + export CONNEXT_TARGET_ARCH="$CONNEXT_BASE_ARCH" + case "${ROS_DISTRO}" in + lyrical) + export CONNEXT_FULL_VERSION="7.7.0" + export CONNEXT_DISPLAY_VERSION="$CONNEXT_FULL_VERSION" + export OPENSSL_VERSION="3.5.5" + export CONNEXT_BASE_ARCH="x64Linux4gcc8.5.0" + export CONNEXT_TARGET_ARCH="$CONNEXT_BASE_ARCH" + ;; + kilted) + export CONNEXT_FULL_VERSION="7.3.0" + export CONNEXT_DISPLAY_VERSION="$CONNEXT_FULL_VERSION" + export OPENSSL_VERSION="3.0.12" + export CONNEXT_BASE_ARCH="x64Linux4gcc7.3.0" + export CONNEXT_TARGET_ARCH="x64Linux3gcc4.8.2" + ;; + humble|jazzy) + export CONNEXT_FULL_VERSION="6.0.1.25" + export CONNEXT_DISPLAY_VERSION="${CONNEXT_FULL_VERSION%.*}" + export OPENSSL_VERSION="1.1.1k" + export CONNEXT_BASE_ARCH="x64Linux4gcc7.3.0" + export CONNEXT_TARGET_ARCH="x64Linux2.6gcc4.4.5" + ;; + *) + # Rolling case. Nothing to do. + ;; + esac case "${CI_ARGS}" in *--connext-debs*) echo "Using Debian package of Connext" - if test -r /opt/rti.com/rti_connext_dds-${CONNEXT_DISPLAY_VERSION}/resource/scripts/rtisetenv_x64Linux4gcc7.3.0.sh; then - echo "Sourcing RTI setenv script /opt/rti.com/rti_connext_dds-${CONNEXT_DISPLAY_VERSION}/resource/scripts/rtisetenv_x64Linux4gcc7.3.0.sh" - . /opt/rti.com/rti_connext_dds-${CONNEXT_DISPLAY_VERSION}/resource/scripts/rtisetenv_x64Linux4gcc7.3.0.sh + if test -r /opt/rti.com/rti_connext_dds-${CONNEXT_DISPLAY_VERSION}/resource/scripts/rtisetenv_${CONNEXT_TARGET_ARCH}.sh; then + echo "Sourcing RTI setenv script /opt/rti.com/rti_connext_dds-${CONNEXT_DISPLAY_VERSION}/resource/scripts/rtisetenv_${CONNEXT_TARGET_ARCH}.sh" + . /opt/rti.com/rti_connext_dds-${CONNEXT_DISPLAY_VERSION}/resource/scripts/rtisetenv_${CONNEXT_TARGET_ARCH}.sh fi ;; *) echo "Installing Connext binaries off RTI website..." if test -x /tmp/rticonnextdds-src/rti_connext_dds-${CONNEXT_DISPLAY_VERSION}-pro-host-x64Linux.run; then rtipkg_list="\ - /tmp/rticonnextdds-src/openssl-3.0.12-${CONNEXT_FULL_VERSION}-host-x64Linux.rtipkg \ - /tmp/rticonnextdds-src/openssl-3.0.12-${CONNEXT_FULL_VERSION}-target-x64Linux4gcc7.3.0.rtipkg \ - /tmp/rticonnextdds-src/rti_security_plugins-${CONNEXT_FULL_VERSION}-host-openssl-3.0-x64Linux.rtipkg \ - /tmp/rticonnextdds-src/rti_security_plugins-${CONNEXT_FULL_VERSION}-target-openssl-3.0-x64Linux4gcc7.3.0.rtipkg \ + /tmp/rticonnextdds-src/openssl-${OPENSSL_VERSION}-${CONNEXT_FULL_VERSION}-host-x64Linux.rtipkg \ + /tmp/rticonnextdds-src/openssl-${OPENSSL_VERSION}-${CONNEXT_FULL_VERSION}-target-${CONNEXT_TARGET_ARCH}.rtipkg \ + /tmp/rticonnextdds-src/rti_security_plugins-${CONNEXT_FULL_VERSION}-host-openssl-${OPENSSL_VERSION}-x64Linux.rtipkg \ + /tmp/rticonnextdds-src/rti_security_plugins-${CONNEXT_FULL_VERSION}-target-openssl-${OPENSSL_VERSION}-${CONNEXT_TARGET_ARCH}.rtipkg \ " - connext_base_architecture="x64Linux3gcc4.8.2" - if [ "${CONNEXT_FULL_VERSION}" = "6.0.1.25" ]; then + + if [ "${ROS_DISTRO}" = "humble" ] || [ "${ROS_DISTRO}" = "jazzy" ]; then rtipkg_list="\ /tmp/rticonnextdds-src/rti_connext_dds-${CONNEXT_FULL_VERSION}-pro-host-x64Linux.rtipkg \ - /tmp/rticonnextdds-src/openssl-1.1.1k-${CONNEXT_FULL_VERSION}-host-x64Linux.rtipkg \ + /tmp/rticonnextdds-src/openssl-${OPENSSL_VERSION}-${CONNEXT_FULL_VERSION}-host-x64Linux.rtipkg \ /tmp/rticonnextdds-src/rti_security_plugins-${CONNEXT_FULL_VERSION}-host-x64Linux.rtipkg \ - /tmp/rticonnextdds-src/rti_security_plugins-${CONNEXT_FULL_VERSION}-target-x64Linux4gcc7.3.0.rtipkg \ + /tmp/rticonnextdds-src/rti_security_plugins-${CONNEXT_FULL_VERSION}-target-${CONNEXT_TARGET_ARCH}.rtipkg \ " - connext_base_architecture="x64Linux2.6gcc4.4.5" fi - python3 -u /tmp/rti_web_binaries_install_script.py /tmp/rticonnextdds-src/rti_connext_dds-${CONNEXT_DISPLAY_VERSION}-pro-host-x64Linux.run \ - /home/rosbuild/rti_connext_dds-${CONNEXT_DISPLAY_VERSION} --rtipkg_paths \ - /tmp/rticonnextdds-src/rti_connext_dds-${CONNEXT_FULL_VERSION}-pro-target-x64Linux4gcc7.3.0.rtipkg \ - $rtipkg_list + python3 -u /tmp/rti_web_binaries_install_script.py \ + /tmp/rticonnextdds-src/rti_connext_dds-${CONNEXT_DISPLAY_VERSION}-pro-host-x64Linux.run \ + /home/rosbuild/rti_connext_dds-${CONNEXT_DISPLAY_VERSION} \ + --rtipkg_paths \ + /tmp/rticonnextdds-src/rti_connext_dds-${CONNEXT_FULL_VERSION}-pro-target-${CONNEXT_TARGET_ARCH}.rtipkg \ + $rtipkg_list if [ $? -ne 0 ]; then echo "Connext not installed correctly (maybe you're on an ARM machine?)." >&2 exit 1 fi export CONNEXTDDS_DIR=/home/rosbuild/rti_connext_dds-${CONNEXT_DISPLAY_VERSION} - export RTI_OPENSSL_LIBS=$CONNEXTDDS_DIR/resource/app/lib/${connext_base_architecture} + export RTI_OPENSSL_LIBS=$CONNEXTDDS_DIR/resource/app/lib/${CONNEXT_BASE_ARCH} else echo "No connext installation files found found." >&2 exit 1 diff --git a/windows_docker_resources/Dockerfile b/windows_docker_resources/Dockerfile index ea09b934..7425160a 100644 --- a/windows_docker_resources/Dockerfile +++ b/windows_docker_resources/Dockerfile @@ -59,25 +59,24 @@ RUN pixi --color never --no-progress -q run "pip install 'colcon-ros-domain-id-c # Setup environment variables needed for Connext ENV RTI_LICENSE_FILE C:\connext\rti_license.dat -ENV CONNEXTDDS_DIR C:\connext\rti_connext_dds-7.3.0 -ENV RTI_OPENSSL_BIN C:\connext\openssl-3.0.12\x64Win64VS2017\bin -ENV RTI_OPENSSL_LIB C:\connext\openssl-3.0.12\x64Win64VS2017\lib +ENV CONNEXTDDS_DIR C:\connext\rti_connext_dds-7.7.0 +ENV RTI_OPENSSL_BIN C:\connext\openssl-3.5.5\x64Win64VS2017\bin +ENV RTI_OPENSSL_LIB C:\connext\openssl-3.5.5\x64Win64VS2017\lib # Copy over necessary Connext files into container RUN IF NOT EXIST "C:\TEMP" mkdir C:\TEMP COPY rticonnextdds-src\ C:\TEMP\rticonnextdds-src -RUN copy /b C:\TEMP\rticonnextdds-src\rti_connext_dds-7.3.0-pro-host-x64Win64.exe.??? C:\TEMP\rticonnextdds-src\rti_connext_dds-7.3.0-pro-host-x64Win64.exe -RUN copy /b C:\TEMP\rticonnextdds-src\rti_connext_dds-7.3.0-pro-target-x64Win64VS2017.rtipkg.??? C:\TEMP\rticonnextdds-src\rti_connext_dds-7.3.0-pro-target-x64Win64VS2017.rtipkg +RUN copy /b C:\TEMP\rticonnextdds-src\rti_connext_dds-7.7.0-pro-host-x64Win64.exe.??? C:\TEMP\rticonnextdds-src\rti_connext_dds-7.7.0-pro-host-x64Win64.exe +RUN copy /b C:\TEMP\rticonnextdds-src\rti_connext_dds-7.7.0-pro-target-x64Win64VS2017.rtipkg.??? C:\TEMP\rticonnextdds-src\rti_connext_dds-7.7.0-pro-target-x64Win64VS2017.rtipkg COPY rticonnextdds-license\rti_license.dat $RTI_LICENSE_FILE # Install Connext -RUN C:\TEMP\rticonnextdds-src\rti_connext_dds-7.3.0-pro-host-x64Win64.exe --mode unattended --unattendedmodeui minimalWithDialogs --prefix C:\connext -RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\openssl-3.0.12-7.3.0-host-x64Win64.rtipkg -RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\openssl-3.0.12-7.3.0-target-x64Win64VS2017.rtipkg -RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\rti_connext_dds-7.3.0-pro-target-x64Win64VS2017.rtipkg -RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\rti_security_plugins-7.3.0-host-x64Win64.rtipkg -RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\rti_security_plugins-7.3.0-target-x64Win64VS2017.rtipkg - +RUN C:\TEMP\rticonnextdds-src\rti_connext_dds-7.7.0-pro-host-x64Win64.exe --mode unattended --unattendedmodeui minimalWithDialogs --prefix C:\connext +RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\openssl-3.5.5-7.7.0-host-x64Win64.rtipkg +RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\openssl-3.5.5-7.7.0-target-x64Win64VS2017.rtipkg +RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\rti_connext_dds-7.7.0-pro-target-x64Win64VS2017.rtipkg +RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\rti_security_plugins-7.7.0-host-x64Win64.rtipkg +RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\rti_security_plugins-7.7.0-target-x64Win64VS2017.rtipkg WORKDIR C:\ci # Note that this *must* be in shell form, not exec form, so Docker on Windows appropriately substitutes %CI_ARGS% CMD "pixi run --manifest-path C:\pixi_ws\pixi.toml --frozen python run_ros2_batch.py %CI_ARGS%" \ No newline at end of file