diff --git a/.github/workflows/linux-arm64-build-and-test.yml b/.github/workflows/linux-arm64-build-and-test.yml index 92fa6fd0..9ac9e5be 100644 --- a/.github/workflows/linux-arm64-build-and-test.yml +++ b/.github/workflows/linux-arm64-build-and-test.yml @@ -38,12 +38,8 @@ jobs: - docker_image: ubuntu:noble ros_distribution: kilted # Lyrical Luth (May 2026 - May 2031, beta) - # NOTE: the tarball URL below is a date-stamped beta snapshot and must - # be refreshed manually until upstream publishes a stable "latest" - # download (or until GA). - docker_image: ubuntu:26.04 ros_distribution: lyrical - ros_tar_url: "https://github.com/ros2/ros2/releases/download/release-lyrical-beta-20260430/ros2-lyrical-2026-04-30-resolute-aarch64.tar.bz2" steps: - name: Setup Node.js ${{ matrix.node-version }} on ${{ matrix.architecture }} @@ -64,26 +60,22 @@ jobs: apt-get update apt-get install -y software-properties-common curl - # Enable required repositories for the lyrical beta tarball; see: + # Enable required repositories per: # https://docs.ros.org/en/lyrical/Installation/Ubuntu-Install-Debs.html add-apt-repository universe ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F'"' '{print $4}') curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb" dpkg -i /tmp/ros2-apt-source.deb apt-get update - apt-get install -y build-essential cmake tar bzip2 python3 python3-rosdep python3-colcon-common-extensions + apt-get install -y build-essential cmake python3 python3-colcon-common-extensions - - name: Install ROS2 from binary tarball (lyrical) + - name: Install ROS2 from apt (lyrical) if: ${{ matrix.ros_distribution == 'lyrical' }} run: | - curl -sL "${{ matrix.ros_tar_url }}" -o /tmp/ros2-lyrical.tar.bz2 - mkdir -p /opt/ros/lyrical - tar xf /tmp/ros2-lyrical.tar.bz2 --strip-components=1 -C /opt/ros/lyrical - rm /tmp/ros2-lyrical.tar.bz2 - - rosdep init || true - rosdep update - rosdep install --rosdistro lyrical --from-paths /opt/ros/lyrical/share --ignore-src -y --skip-keys "cyclonedds fastcdr fastdds iceoryx_binding_c rmw_connextdds rti-connext-dds-7.3.0 rti-connext-dds-7.7.0 urdfdom_headers python3-pyqt6.qtsvg rosidl_buffer_py pybind11" + # Per https://docs.ros.org/en/lyrical/Installation/Ubuntu-Install-Debs.html + apt-get install -y \ + ros-lyrical-desktop \ + ros-lyrical-test-msgs - name: Install test-msgs and mrpt_msgs on Linux if: ${{ matrix.ros_distribution != 'lyrical' }} diff --git a/.github/workflows/linux-x64-build-and-test.yml b/.github/workflows/linux-x64-build-and-test.yml index b00f68c2..aa650a3a 100644 --- a/.github/workflows/linux-x64-build-and-test.yml +++ b/.github/workflows/linux-x64-build-and-test.yml @@ -39,13 +39,8 @@ jobs: - docker_image: ubuntu:noble ros_distribution: kilted # Lyrical Luth (May 2026 - May 2031, beta) - # NOTE: the tarball URL below is a date-stamped beta snapshot and must - # be refreshed manually until upstream publishes a stable "latest" - # download (or until GA), at which point it can be replaced with the - # stable URL similar to the rolling nightly redirect. - docker_image: ubuntu:26.04 ros_distribution: lyrical - ros_tar_url: "https://github.com/ros2/ros2/releases/download/release-lyrical-beta-20260430/ros2-lyrical-2026-04-30-resolute-x86_64.tar.bz2" # Rolling Ridley (No End-Of-Life) - migrated to Ubuntu 26.04 (resolute) # to follow the Lyrical Luth target platform. # See: https://docs.ros.org/en/jazzy/Releases/Release-Lyrical-Luth.html @@ -72,7 +67,7 @@ jobs: apt-get install -y software-properties-common curl # Enable required repositories. The same setup applies to both the - # rolling nightly tarball and the lyrical beta tarball; see the + # rolling nightly tarball and the lyrical apt-deb install; see the # per-distro install docs for reference: # rolling: https://docs.ros.org/en/rolling/Installation/Alternatives/Ubuntu-Install-Binary.html # lyrical: https://docs.ros.org/en/lyrical/Installation/Ubuntu-Install-Debs.html @@ -83,8 +78,16 @@ jobs: apt-get update apt-get install -y build-essential cmake tar bzip2 python3 python3-rosdep python3-colcon-common-extensions - - name: Install ROS2 from binary tarball (rolling / lyrical) - if: ${{ matrix.ros_distribution == 'rolling' || matrix.ros_distribution == 'lyrical' }} + - name: Install ROS2 from apt (lyrical) + if: ${{ matrix.ros_distribution == 'lyrical' }} + run: | + # Per https://docs.ros.org/en/lyrical/Installation/Ubuntu-Install-Debs.html + apt-get install -y \ + ros-lyrical-desktop \ + ros-lyrical-test-msgs + + - name: Install ROS2 from binary tarball (rolling) + if: ${{ matrix.ros_distribution == 'rolling' }} run: | # Extract binary tarball AFTER apt packages so its newer libs overwrite apt's older ones curl -sL "${{ matrix.ros_tar_url }}" -o /tmp/ros2-${{ matrix.ros_distribution }}.tar.bz2 diff --git a/.github/workflows/prebuild-linux-arm64.yml b/.github/workflows/prebuild-linux-arm64.yml index 00fdf082..b44061e3 100644 --- a/.github/workflows/prebuild-linux-arm64.yml +++ b/.github/workflows/prebuild-linux-arm64.yml @@ -33,13 +33,9 @@ jobs: ros_distribution: kilted ubuntu_codename: noble # Lyrical Luth (May 2026 - May 2031, beta) - # NOTE: the tarball URL below is a date-stamped beta snapshot and - # must be refreshed manually until upstream publishes a stable - # "latest" download (or until GA). - docker_image: ubuntu:26.04 ros_distribution: lyrical ubuntu_codename: resolute - ros_tar_url: "https://github.com/ros2/ros2/releases/download/release-lyrical-beta-20260430/ros2-lyrical-2026-04-30-resolute-aarch64.tar.bz2" steps: - name: Setup Node.js ${{ matrix.node-version }} on ${{ matrix.architecture }} @@ -59,23 +55,18 @@ jobs: run: | apt-get update apt-get install -y software-properties-common curl + # Per https://docs.ros.org/en/lyrical/Installation/Ubuntu-Install-Debs.html add-apt-repository universe ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F'"' '{print $4}') curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb" dpkg -i /tmp/ros2-apt-source.deb apt-get update - apt-get install -y build-essential cmake tar bzip2 python3 python3-rosdep python3-colcon-common-extensions + apt-get install -y build-essential cmake python3 - - name: Install ROS2 from binary tarball (lyrical) + - name: Install ROS2 from apt (lyrical) if: ${{ matrix.ros_distribution == 'lyrical' }} run: | - curl -sL "${{ matrix.ros_tar_url }}" -o /tmp/ros2-${{ matrix.ros_distribution }}.tar.bz2 - mkdir -p /opt/ros/${{ matrix.ros_distribution }} - tar xf /tmp/ros2-${{ matrix.ros_distribution }}.tar.bz2 --strip-components=1 -C /opt/ros/${{ matrix.ros_distribution }} - rm /tmp/ros2-${{ matrix.ros_distribution }}.tar.bz2 - rosdep init || true - rosdep update - rosdep install --rosdistro ${{ matrix.ros_distribution }} --from-paths /opt/ros/${{ matrix.ros_distribution }}/share --ignore-src -y --skip-keys "cyclonedds fastcdr fastdds iceoryx_binding_c rmw_connextdds rti-connext-dds-7.3.0 rti-connext-dds-7.7.0 urdfdom_headers python3-pyqt6.qtsvg rosidl_buffer_py pybind11" + apt-get install -y ros-lyrical-desktop - uses: actions/checkout@v6 diff --git a/.github/workflows/prebuild-linux-x64.yml b/.github/workflows/prebuild-linux-x64.yml index 60052e5f..f0ef0af5 100644 --- a/.github/workflows/prebuild-linux-x64.yml +++ b/.github/workflows/prebuild-linux-x64.yml @@ -33,13 +33,9 @@ jobs: ros_distribution: kilted ubuntu_codename: noble # Lyrical Luth (May 2026 - May 2031, beta) - # NOTE: the tarball URL below is a date-stamped beta snapshot and - # must be refreshed manually until upstream publishes a stable - # "latest" download (or until GA). - docker_image: ubuntu:26.04 ros_distribution: lyrical ubuntu_codename: resolute - ros_tar_url: "https://github.com/ros2/ros2/releases/download/release-lyrical-beta-20260430/ros2-lyrical-2026-04-30-resolute-x86_64.tar.bz2" steps: - name: Setup Node.js ${{ matrix.node-version }} on ${{ matrix.architecture }} @@ -59,23 +55,18 @@ jobs: run: | apt-get update apt-get install -y software-properties-common curl + # Per https://docs.ros.org/en/lyrical/Installation/Ubuntu-Install-Debs.html add-apt-repository universe ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F'"' '{print $4}') curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb" dpkg -i /tmp/ros2-apt-source.deb apt-get update - apt-get install -y build-essential cmake tar bzip2 python3 python3-rosdep python3-colcon-common-extensions + apt-get install -y build-essential cmake python3 - - name: Install ROS2 from binary tarball (lyrical) + - name: Install ROS2 from apt (lyrical) if: ${{ matrix.ros_distribution == 'lyrical' }} run: | - curl -sL "${{ matrix.ros_tar_url }}" -o /tmp/ros2-${{ matrix.ros_distribution }}.tar.bz2 - mkdir -p /opt/ros/${{ matrix.ros_distribution }} - tar xf /tmp/ros2-${{ matrix.ros_distribution }}.tar.bz2 --strip-components=1 -C /opt/ros/${{ matrix.ros_distribution }} - rm /tmp/ros2-${{ matrix.ros_distribution }}.tar.bz2 - rosdep init || true - rosdep update - rosdep install --rosdistro ${{ matrix.ros_distribution }} --from-paths /opt/ros/${{ matrix.ros_distribution }}/share --ignore-src -y --skip-keys "cyclonedds fastcdr fastdds iceoryx_binding_c rmw_connextdds rti-connext-dds-7.3.0 rti-connext-dds-7.7.0 urdfdom_headers python3-pyqt6.qtsvg rosidl_buffer_py pybind11" + apt-get install -y ros-lyrical-desktop - uses: actions/checkout@v6