Skip to content

Commit 018aa1a

Browse files
authored
[Lyrical] Switch Linux CI to apt-deb install and bump Windows zip (#1516)
Per the official Lyrical install guide (https://docs.ros.org/en/lyrical/Installation/Ubuntu-Install-Debs.html), ROS 2 Lyrical is now available as Debian packages on Ubuntu 26.04. Switch all four Linux workflows to `apt-get install -y ros-lyrical-desktop` and drop the date-stamped beta tarball that had to be hand-refreshed every time upstream produced a new snapshot. The test workflows also install `ros-lyrical-test-msgs`; `ros-lyrical-mrpt-msgs` is omitted because it is not yet published for lyrical (the previous tarball path skipped both packages on lyrical too, so the test suite already tolerates its absence). Removes the `curl | tar xf` extract step, the `rosdep init/update/install` chain with its long `--skip-keys` list, and the `tar`, `bzip2`, `python3-rosdep` packages they required. Rolling continues to use the nightly tarball; humble/jazzy/kilted continue to use `ros-tooling/setup-ros@v0.7`, which does not yet recognize lyrical. On `linux-arm64-build-and-test.yml`, `sudo` is also added to the lyrical apt prerequisites: the job runs in a bare `ubuntu:26.04` container, and the downstream "Install Electron test dependencies" and "Fix permissions" steps shell out to `sudo apt …` / `sudo chown …`. The other distros get `sudo` implicitly via `ros-tooling/setup-ros`; lyrical takes the manual apt path, so it needs to be installed explicitly. Without this, the lyrical arm64 job failed with `sudo: command not found` (exit code 127). Windows still has no apt equivalent and continues to use the binary zip, but its lyrical URL is bumped from the `release-lyrical-beta-20260430` snapshot to `release-lyrical-20260522`. Fix: #1458
1 parent 128faf6 commit 018aa1a

5 files changed

Lines changed: 42 additions & 58 deletions

File tree

.github/workflows/linux-arm64-build-and-test.yml

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,9 @@ jobs:
3737
# Kilted Kaiju (May 2025 - Dec 2026)
3838
- docker_image: ubuntu:noble
3939
ros_distribution: kilted
40-
# Lyrical Luth (May 2026 - May 2031, beta)
41-
# NOTE: the tarball URL below is a date-stamped beta snapshot and must
42-
# be refreshed manually until upstream publishes a stable "latest"
43-
# download (or until GA).
40+
# Lyrical Luth (May 2026 - May 2031)
4441
- docker_image: ubuntu:26.04
4542
ros_distribution: lyrical
46-
ros_tar_url: "https://github.com/ros2/ros2/releases/download/release-lyrical-beta-20260430/ros2-lyrical-2026-04-30-resolute-aarch64.tar.bz2"
4743

4844
steps:
4945
- name: Setup Node.js ${{ matrix.node-version }} on ${{ matrix.architecture }}
@@ -62,28 +58,24 @@ jobs:
6258
if: ${{ matrix.ros_distribution == 'lyrical' }}
6359
run: |
6460
apt-get update
65-
apt-get install -y software-properties-common curl
61+
apt-get install -y sudo software-properties-common curl
6662
67-
# Enable required repositories for the lyrical beta tarball; see:
63+
# Enable required repositories per:
6864
# https://docs.ros.org/en/lyrical/Installation/Ubuntu-Install-Debs.html
6965
add-apt-repository universe
7066
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}')
7167
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"
7268
dpkg -i /tmp/ros2-apt-source.deb
7369
apt-get update
74-
apt-get install -y build-essential cmake tar bzip2 python3 python3-rosdep python3-colcon-common-extensions
70+
apt-get install -y build-essential cmake python3 python3-colcon-common-extensions
7571
76-
- name: Install ROS2 from binary tarball (lyrical)
72+
- name: Install ROS2 from apt (lyrical)
7773
if: ${{ matrix.ros_distribution == 'lyrical' }}
7874
run: |
79-
curl -sL "${{ matrix.ros_tar_url }}" -o /tmp/ros2-lyrical.tar.bz2
80-
mkdir -p /opt/ros/lyrical
81-
tar xf /tmp/ros2-lyrical.tar.bz2 --strip-components=1 -C /opt/ros/lyrical
82-
rm /tmp/ros2-lyrical.tar.bz2
83-
84-
rosdep init || true
85-
rosdep update
86-
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"
75+
# Per https://docs.ros.org/en/lyrical/Installation/Ubuntu-Install-Debs.html
76+
apt-get install -y \
77+
ros-lyrical-desktop \
78+
ros-lyrical-test-msgs
8779
8880
- name: Install test-msgs and mrpt_msgs on Linux
8981
if: ${{ matrix.ros_distribution != 'lyrical' }}

.github/workflows/linux-x64-build-and-test.yml

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,9 @@ jobs:
3838
# Kilted Kaiju (May 2025 - Dec 2026)
3939
- docker_image: ubuntu:noble
4040
ros_distribution: kilted
41-
# Lyrical Luth (May 2026 - May 2031, beta)
42-
# NOTE: the tarball URL below is a date-stamped beta snapshot and must
43-
# be refreshed manually until upstream publishes a stable "latest"
44-
# download (or until GA), at which point it can be replaced with the
45-
# stable URL similar to the rolling nightly redirect.
41+
# Lyrical Luth (May 2026 - May 2031)
4642
- docker_image: ubuntu:26.04
4743
ros_distribution: lyrical
48-
ros_tar_url: "https://github.com/ros2/ros2/releases/download/release-lyrical-beta-20260430/ros2-lyrical-2026-04-30-resolute-x86_64.tar.bz2"
4944
# Rolling Ridley (No End-Of-Life) - migrated to Ubuntu 26.04 (resolute)
5045
# to follow the Lyrical Luth target platform.
5146
# See: https://docs.ros.org/en/jazzy/Releases/Release-Lyrical-Luth.html
@@ -69,10 +64,10 @@ jobs:
6964
if: ${{ matrix.ros_distribution == 'rolling' || matrix.ros_distribution == 'lyrical' }}
7065
run: |
7166
apt-get update
72-
apt-get install -y software-properties-common curl
67+
apt-get install -y sudo software-properties-common curl
7368
7469
# Enable required repositories. The same setup applies to both the
75-
# rolling nightly tarball and the lyrical beta tarball; see the
70+
# rolling nightly tarball and the lyrical apt-deb install; see the
7671
# per-distro install docs for reference:
7772
# rolling: https://docs.ros.org/en/rolling/Installation/Alternatives/Ubuntu-Install-Binary.html
7873
# lyrical: https://docs.ros.org/en/lyrical/Installation/Ubuntu-Install-Debs.html
@@ -81,11 +76,26 @@ jobs:
8176
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"
8277
dpkg -i /tmp/ros2-apt-source.deb
8378
apt-get update
84-
apt-get install -y build-essential cmake tar bzip2 python3 python3-rosdep python3-colcon-common-extensions
79+
# Common build deps for both rolling and lyrical. Rolling-only tarball
80+
# tooling (tar, bzip2, python3-rosdep) is installed in the rolling step
81+
# below so the lyrical lane stays minimal.
82+
apt-get install -y build-essential cmake python3 python3-colcon-common-extensions
8583
86-
- name: Install ROS2 from binary tarball (rolling / lyrical)
87-
if: ${{ matrix.ros_distribution == 'rolling' || matrix.ros_distribution == 'lyrical' }}
84+
- name: Install ROS2 from apt (lyrical)
85+
if: ${{ matrix.ros_distribution == 'lyrical' }}
86+
run: |
87+
# Per https://docs.ros.org/en/lyrical/Installation/Ubuntu-Install-Debs.html
88+
apt-get install -y \
89+
ros-lyrical-desktop \
90+
ros-lyrical-test-msgs
91+
92+
- name: Install ROS2 from binary tarball (rolling)
93+
if: ${{ matrix.ros_distribution == 'rolling' }}
8894
run: |
95+
# Tools only the rolling tarball path needs: tar/bzip2 for extraction,
96+
# python3-rosdep for resolving runtime deps below.
97+
apt-get install -y tar bzip2 python3-rosdep
98+
8999
# Extract binary tarball AFTER apt packages so its newer libs overwrite apt's older ones
90100
curl -sL "${{ matrix.ros_tar_url }}" -o /tmp/ros2-${{ matrix.ros_distribution }}.tar.bz2
91101
mkdir -p /opt/ros/${{ matrix.ros_distribution }}

.github/workflows/prebuild-linux-arm64.yml

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,10 @@ jobs:
3232
- docker_image: ubuntu:noble
3333
ros_distribution: kilted
3434
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).
35+
# Lyrical Luth (May 2026 - May 2031)
3936
- docker_image: ubuntu:26.04
4037
ros_distribution: lyrical
4138
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"
4339

4440
steps:
4541
- name: Setup Node.js ${{ matrix.node-version }} on ${{ matrix.architecture }}
@@ -59,23 +55,18 @@ jobs:
5955
run: |
6056
apt-get update
6157
apt-get install -y software-properties-common curl
58+
# Per https://docs.ros.org/en/lyrical/Installation/Ubuntu-Install-Debs.html
6259
add-apt-repository universe
6360
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}')
6461
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"
6562
dpkg -i /tmp/ros2-apt-source.deb
6663
apt-get update
67-
apt-get install -y build-essential cmake tar bzip2 python3 python3-rosdep python3-colcon-common-extensions
64+
apt-get install -y build-essential cmake python3
6865
69-
- name: Install ROS2 from binary tarball (lyrical)
66+
- name: Install ROS2 from apt (lyrical)
7067
if: ${{ matrix.ros_distribution == 'lyrical' }}
7168
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"
69+
apt-get install -y ros-lyrical-desktop
7970
8071
- uses: actions/checkout@v6
8172

.github/workflows/prebuild-linux-x64.yml

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,10 @@ jobs:
3232
- docker_image: ubuntu:noble
3333
ros_distribution: kilted
3434
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).
35+
# Lyrical Luth (May 2026 - May 2031)
3936
- docker_image: ubuntu:26.04
4037
ros_distribution: lyrical
4138
ubuntu_codename: resolute
42-
ros_tar_url: "https://github.com/ros2/ros2/releases/download/release-lyrical-beta-20260430/ros2-lyrical-2026-04-30-resolute-x86_64.tar.bz2"
4339

4440
steps:
4541
- name: Setup Node.js ${{ matrix.node-version }} on ${{ matrix.architecture }}
@@ -59,23 +55,18 @@ jobs:
5955
run: |
6056
apt-get update
6157
apt-get install -y software-properties-common curl
58+
# Per https://docs.ros.org/en/lyrical/Installation/Ubuntu-Install-Debs.html
6259
add-apt-repository universe
6360
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}')
6461
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"
6562
dpkg -i /tmp/ros2-apt-source.deb
6663
apt-get update
67-
apt-get install -y build-essential cmake tar bzip2 python3 python3-rosdep python3-colcon-common-extensions
64+
apt-get install -y build-essential cmake python3
6865
69-
- name: Install ROS2 from binary tarball (lyrical)
66+
- name: Install ROS2 from apt (lyrical)
7067
if: ${{ matrix.ros_distribution == 'lyrical' }}
7168
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"
69+
apt-get install -y ros-lyrical-desktop
7970
8071
- uses: actions/checkout@v6
8172

.github/workflows/windows-build-and-test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ jobs:
2727
- ros_distribution: kilted
2828
ros_zip_url: "https://github.com/ros2/ros2/releases/download/release-kilted-20250728/ros2-kilted-20250728-windows-release-amd64.zip"
2929
run_tests: false
30-
# Lyrical Luth (May 2026 - May 2031, beta)
30+
# Lyrical Luth (May 2026 - May 2031)
3131
# Reference: https://docs.ros.org/en/lyrical/Installation/Windows-Install-Binary.html
3232
- ros_distribution: lyrical
33-
ros_zip_url: "https://github.com/ros2/ros2/releases/download/release-lyrical-beta-20260430/ros2-lyrical-2026-04-30-windows-AMD64.zip"
33+
ros_zip_url: "https://github.com/ros2/ros2/releases/download/release-lyrical-20260522/ros2-lyrical-2026-05-22-windows-AMD64.zip"
3434
run_tests: true
3535
- ros_distribution: rolling
3636
ros_zip_url: "https://github.com/ros2/ros2/releases/download/release-rolling-nightlies/ros2-rolling-nightly-windows-amd64.zip"

0 commit comments

Comments
 (0)