1818 - humble
1919 - jazzy
2020 - kilted
21+ - lyrical
2122 include :
2223 # Humble Hawksbill (May 2022 - May 2027)
2324 - docker_image : ubuntu:jammy
3132 - docker_image : ubuntu:noble
3233 ros_distribution : kilted
3334 ubuntu_codename : noble
35+ # Lyrical Luth (May 2026 - May 2031, beta)
36+ # NOTE: the tarball URL below is a date-stamped beta snapshot and
37+ # must be refreshed manually until upstream publishes a stable
38+ # "latest" download (or until GA).
39+ - docker_image : ubuntu:26.04
40+ ros_distribution : lyrical
41+ ubuntu_codename : resolute
42+ ros_tar_url : " https://github.com/ros2/ros2/releases/download/release-lyrical-beta-20260430/ros2-lyrical-2026-04-30-resolute-aarch64.tar.bz2"
3443
3544 steps :
3645 - name : Setup Node.js ${{ matrix.node-version }} on ${{ matrix.architecture }}
@@ -40,10 +49,34 @@ jobs:
4049 architecture : ${{ matrix.architecture }}
4150
4251 - name : Setup ROS2
52+ if : ${{ matrix.ros_distribution != 'lyrical' }}
4353 uses : ros-tooling/setup-ros@v0.7
4454 with :
4555 required-ros-distributions : ${{ matrix.ros_distribution }}
4656
57+ - name : Enable ROS2 apt repository (lyrical)
58+ if : ${{ matrix.ros_distribution == 'lyrical' }}
59+ run : |
60+ apt-get update
61+ apt-get install -y software-properties-common curl
62+ add-apt-repository universe
63+ 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}')
64+ 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"
65+ dpkg -i /tmp/ros2-apt-source.deb
66+ apt-get update
67+ apt-get install -y build-essential cmake tar bzip2 python3 python3-rosdep python3-colcon-common-extensions
68+
69+ - name : Install ROS2 from binary tarball (lyrical)
70+ if : ${{ matrix.ros_distribution == 'lyrical' }}
71+ run : |
72+ curl -sL "${{ matrix.ros_tar_url }}" -o /tmp/ros2-${{ matrix.ros_distribution }}.tar.bz2
73+ mkdir -p /opt/ros/${{ matrix.ros_distribution }}
74+ tar xf /tmp/ros2-${{ matrix.ros_distribution }}.tar.bz2 --strip-components=1 -C /opt/ros/${{ matrix.ros_distribution }}
75+ rm /tmp/ros2-${{ matrix.ros_distribution }}.tar.bz2
76+ rosdep init || true
77+ rosdep update
78+ 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"
79+
4780 - uses : actions/checkout@v6
4881
4982 - name : Install dependencies
0 commit comments