Skip to content

Commit b54066d

Browse files
authored
Migrate rolling build to 26.04 (#1493)
Updates the reusable Linux x64 CI workflow to run ROS 2 Rolling builds on an Ubuntu 26.04-based container and adjusts package selection for Electron test dependencies based on Ubuntu version. **Changes:** - Switch the ROS 2 Rolling matrix entry from `ubuntu:noble` to `ubuntu:resolute` (intended 26.04 migration). - Update Electron test dependency installation to select `libasound2t64` on Ubuntu 24.04 and 26.04 via `VERSION_ID` detection. Fix: #1458
1 parent 3176aca commit b54066d

2 files changed

Lines changed: 17 additions & 5 deletions

File tree

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

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,10 @@ jobs:
3737
# Kilted Kaiju (May 2025 - Dec 2026)
3838
- docker_image: ubuntu:noble
3939
ros_distribution: kilted
40-
# Rolling Ridley (No End-Of-Life)
41-
- docker_image: ubuntu:noble
40+
# Rolling Ridley (No End-Of-Life) - migrated to Ubuntu 26.04 (resolute)
41+
# to follow the Lyrical Luth target platform.
42+
# See: https://docs.ros.org/en/jazzy/Releases/Release-Lyrical-Luth.html
43+
- docker_image: ubuntu:resolute
4244
ros_distribution: rolling
4345
ros_tar_url: "https://github.com/ros2/ros2/releases/download/release-rolling-nightlies/ros2-rolling-nightly-linux-amd64.tar.bz2"
4446
steps:
@@ -69,7 +71,6 @@ jobs:
6971
# Install prerequisites and apt packages BEFORE nightly tarball
7072
apt-get update
7173
apt-get install -y build-essential cmake tar bzip2 python3 python3-rosdep python3-colcon-common-extensions
72-
apt-get install -y ros-rolling-test-msgs ros-rolling-mrpt-msgs
7374
7475
# Extract nightly binary AFTER apt packages so nightly's newer libs overwrite apt's older ones
7576
curl -sL "${{ matrix.ros_tar_url }}" -o /tmp/ros2-nightly.tar.bz2
@@ -89,9 +90,11 @@ jobs:
8990
9091
- name: Install Electron test dependencies
9192
run: |
92-
# Adjust dependencies based on Ubuntu version
93+
# Adjust dependencies based on Ubuntu version.
94+
# 22.04 (jammy) uses libasound2; 24.04 (noble) and 26.04 (resolute) use the
95+
# t64 ABI transition package libasound2t64.
9396
LIBASOUND_PKG="libasound2"
94-
if grep -q "24.04" /etc/os-release; then
97+
if grep -Eq "VERSION_ID=\"(24\\.04|26\\.04)\"" /etc/os-release; then
9598
LIBASOUND_PKG="libasound2t64"
9699
fi
97100
sudo apt install -y xvfb libgtk-3-0 libnss3 $LIBASOUND_PKG libgbm-dev

test/test-rosidl-message-generator.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,15 @@ describe('ROSIDL Node.js message generator test suite', function () {
318318
this.skip();
319319
}
320320

321+
// mrpt_msgs is an optional system package. When the apt package is
322+
// unavailable on the host (e.g. ros-rolling-mrpt-msgs is not yet
323+
// published for Ubuntu 26.04 / resolute), skip rather than fail.
324+
const fs = require('fs');
325+
const mrptGenerated = path.join(__dirname, '..', 'generated', 'mrpt_msgs');
326+
if (!fs.existsSync(mrptGenerated)) {
327+
this.skip();
328+
}
329+
321330
// GraphSlamAgents.msg lives under msg-common/ (non-standard subfolder name)
322331
// and references GraphSlamAgent.msg from msg-ros2/. This verifies that
323332
// packages with hyphenated subfolder names are generated and loadable.

0 commit comments

Comments
 (0)